import { CrossbowConfiguration } from './config';
import { CrossbowInput, CLI, CrossbowReporter } from './index';
import { Tasks } from './task.resolve';
import Rx = require('rx');
import * as file from "./file.utils";
export interface DocsError {
    type: DocsErrorTypes;
}
export interface DocsInputFileNotFoundError extends DocsError {
    file: file.ExternalFile;
}
export interface DocsOutputFileExistsError extends DocsInputFileNotFoundError {
}
export declare enum DocsErrorTypes {
    DocsInputFileNotFound,
    DocsOutputFileExists,
}
export declare const docStartComment: string;
export declare const docEndComment: string;
export declare const hasRegExp: RegExp;
export declare const hasExistingComments: (string: any) => boolean;
export declare const readmeRegExp: RegExp;
export interface DocsFileOutput {
    file: file.ExternalFile;
    content: string;
}
export interface DocsCommandOutput {
    tasks: Tasks;
    errors: DocsError[];
    markdown?: string;
    output?: DocsFileOutput[];
}
export declare type DocsCommandComplete = Rx.Observable<{
    setup: DocsCommandOutput;
}>;
export default function handleIncomingDocsCommand(cli: CLI, input: CrossbowInput, config: CrossbowConfiguration, reporter: CrossbowReporter): Rx.Observable<{
    setup: DocsCommandOutput;
}>;
