import type { BaseArgs } from "../../../core/program";
import type { ExtractOptions } from '@diplodoc/translation';
import type { Locale } from '../utils';
import type { ConfigDefaults } from '../utils/config';
import { Command } from "../../../core/config";
import { BaseProgram } from "../../../core/program";
import { Extension as ExtractOpenapiIncluderFakeExtension } from '../extract-openapi';
import { FilterExtract } from '../features/filter-extract';
import { TranslateLogger } from '../logger';
export type ExtractArgs = BaseArgs & {
    output: string;
    source?: string;
    target?: string | string[];
    include?: string[];
    exclude?: string[];
    filter?: boolean;
    refResolve?: boolean;
};
export type ExtractConfig = Pick<BaseArgs, 'input' | 'strict' | 'quiet'> & {
    output: AbsolutePath;
    source: Locale;
    target: Locale[];
    include: string[];
    exclude: string[];
    files: string[];
    skipped: [string, string][];
    schema?: string;
    filter?: boolean;
    refResolve?: boolean;
} & ConfigDefaults;
export declare class Extract extends BaseProgram<ExtractConfig, ExtractArgs> {
    readonly name = "Translate.Extract";
    readonly command: Command;
    readonly options: import("../../../core/config").ExtendedOption[];
    readonly modules: (ExtractOpenapiIncluderFakeExtension | FilterExtract)[];
    readonly logger: TranslateLogger;
    private run;
    apply(program?: BaseProgram): void;
    action(): Promise<void>;
}
export type PipelineParameters = {
    input: string;
    output: string;
    source: ExtractOptions['source'];
    target: ExtractOptions['target'];
    schema?: ExtractOptions['schema'];
};
