import { flags } from '@oclif/command';
import { Base } from '../base';
declare type Message = {
    defaultMessage: string;
    message?: string;
    description?: string;
    files?: string[];
};
declare type FileMessage = Message & {
    id: string;
};
declare type FileToMessages = {
    [filename: string]: FileMessage[];
};
export default class Extract extends Base {
    static description: string;
    static examples: string[];
    static flags: {
        pattern: flags.IOptionFlag<string>;
        ignore: flags.IOptionFlag<string | undefined>;
        langs: flags.IOptionFlag<string>;
        help: import("@oclif/parser/lib/flags").IBooleanFlag<void>;
        messagesDir: flags.IOptionFlag<string>;
    };
    messages: {
        [id: string]: Message;
    };
    fileToMessages: FileToMessages;
    static writeMessages(fileName: string, msgs: Message[]): Promise<void>;
    /**
     * Merge messages to source files
     * @param locale
     */
    mergeToFile(locale: string): Promise<void>;
    mergeMessages(): void;
    processFile: (filename: string) => Promise<void>;
    /**
     * Extract react-intl messages and write it to <dest>/_default.json
     * Also extends known localizations
     */
    run(): Promise<void>;
}
export {};
