import { CrossbowConfiguration } from './config';
import { CrossbowInput, CLI, CrossbowReporter } from './index';
import Rx = require('rx');
import * as file from "./file.utils";
import { ExternalFile } from "./file.utils";
export declare enum InitConfigFileErrorTypes {
    InitInputFileExists,
    InitInputFileTypeNotSupported,
}
export interface InitConfigError {
    type: InitConfigFileErrorTypes;
}
export interface InitConfigFileExistsError extends InitConfigError {
    file: file.ExternalFile;
}
export interface InitConfigFileTypeNotSupported extends InitConfigError {
    providedType: InitConfigFileTypes;
    supportedTypes: {};
}
export interface InitCommandOutput {
    existingFilesInCwd: ExternalFile[];
    matchingFiles: ExternalFile[];
    errors: InitConfigError[];
    outputFilePath?: string;
    outputFileName?: string;
    templateFilePath?: string;
}
export declare type InitCommandComplete = Rx.Observable<{
    setup: InitCommandOutput;
}>;
export declare enum InitConfigFileTypes {
    yaml,
    js,
    json,
    cbfile,
}
export default function handleIncomingInitCommand(cli: CLI, input: CrossbowInput, config: CrossbowConfiguration, reporter: CrossbowReporter): Rx.Observable<{
    setup: InitCommandOutput;
}>;
