interface Position {
    line: number;
    character: number;
}
interface MessageReferenceMatch {
    bundleId: string;
    position: {
        start: Position;
        end: Position;
    };
}
interface IdeExtensionConfigSchema {
    /**
     * Defines matchers for message references inside the code.
     *
     * @param args - Represents the data to conduct the search on.
     * @returns A promise with matched message references.
     */
    messageReferenceMatchers: Array<(args: {
        documentText: string;
    }) => Promise<MessageReferenceMatch[]>>;
    /**
     * Defines options to extract messages.
     */
    extractMessageOptions: Array<{
        /**
         * Function which is called when the user finishes the message extraction command.
         *
         * @param args - Contains messageId and selection.
         * @returns The code which is inserted into the document.
         */
        callback: (args: {
            bundleId: string;
            selection: string;
        }) => {
            bundleId: string;
            messageReplacement: string;
        };
    }>;
    /**
     * An array of Visual Studio Code DocumentSelectors.
     *
     * The document selectors specify for which files/programming languages
     * (typescript, svelte, etc.) the extension should be activated.
     *
     * See https://code.visualstudio.com/api/references/document-selector
     */
    documentSelectors?: Array<{
        language?: string;
    }>;
}
export type IdeExtensionConfig = IdeExtensionConfigSchema;
export {};
//# sourceMappingURL=ideExtension.d.ts.map