class KafkaStreams {

    public void cleanUp() {
        if (this.state == RUNNING) {
            throw new IllegalStateException("Cannot clean up while running.");
        }

        final String localApplicationDir = this.config.getString(StreamsConfig.STATE_DIR_CONFIG)
            + File.separator
            + this.config.getString(StreamsConfig.APPLICATION_ID_CONFIG);

        log.debug("Clean up local Kafka Streams data in {}", localApplicationDir);
        log.debug("Removing local Kafka Streams application data in {} for application {}",
            localApplicationDir,
            this.config.getString(StreamsConfig.APPLICATION_ID_CONFIG));
        Utils.delete(new File(localApplicationDir));
    }

    public  KafkaStreams(final TopologyBuilder builder, final Properties props);
    public  KafkaStreams(final TopologyBuilder builder, final StreamsConfig config);
    public  KafkaStreams(final TopologyBuilder builder, final StreamsConfig config, final KafkaClientSupplier clientSupplier);

}