import { type AutocompleteStringList, type StringListToInterfaceKey } from "../utils.js";
declare const DEFAULT_COMMENTS: readonly ["js", "jsx", "es", "es6", "mjs", "cjs", "pac", "javascript"];
type Comments = AutocompleteStringList<(typeof DEFAULT_COMMENTS)[number]>;
type DefaultCommentsHolder = StringListToInterfaceKey<typeof DEFAULT_COMMENTS>;
declare const DEFAULT_TAGS: readonly ["js", "jsx", "es", "es6", "mjs", "cjs", "pac", "javascript"];
type Tags = AutocompleteStringList<(typeof DEFAULT_TAGS)[number]>;
type DefaultTagsHolder = StringListToInterfaceKey<typeof DEFAULT_TAGS>;
declare const ES_PARSERS: readonly ["babel", "babel-flow", "acorn", "espree", "flow", "meriyah"];
export type EsParser = (typeof ES_PARSERS)[number];
declare const EMBEDDED_LANGUAGE_IDENTIFIERS: "embeddedEsIdentifiers";
declare const EMBEDDED_LANGUAGE_COMMENTS: "embeddedEsComments";
declare const EMBEDDED_LANGUAGE_TAGS: "embeddedEsTags";
declare const EMBEDDED_LANGUAGE_PARSER: "embeddedEsParser";
export declare const options: {
    readonly embeddedEsIdentifiers: {
        readonly category: "Embed";
        readonly type: "string";
        readonly array: true;
        readonly default: [{
            readonly value: ["js", "jsx", "es", "es6", "mjs", "cjs", "pac", "javascript"];
        }];
        readonly description: "Tag or comment identifiers that make their subsequent template literals be identified as embedded ECMAScript/JavaScript language.";
        readonly deprecated: "Please use `embeddedEsComments` or `embeddedEsTags`.";
    };
    readonly embeddedEsComments: {
        readonly category: "Embed";
        readonly type: "string";
        readonly array: true;
        readonly default: [{
            readonly value: ["9ff2b366e8ca4c97b9aed1a29b5b94ed"];
        }];
        readonly description: "Block comments that make their subsequent template literals be identified as embedded ECMAScript/JavaScript language.";
    };
    readonly embeddedEsTags: {
        readonly category: "Embed";
        readonly type: "string";
        readonly array: true;
        readonly default: [{
            readonly value: ["9ff2b366e8ca4c97b9aed1a29b5b94ed"];
        }];
        readonly description: "Tags that make their subsequent template literals be identified as embedded ECMAScript/JavaScript language.";
    };
    readonly embeddedEsParser: {
        category: string;
        type: "choice";
        default: "babel";
        description: string;
        choices: {
            value: "babel" | "babel-flow" | "acorn" | "espree" | "flow" | "meriyah";
            description: string;
        }[];
    };
};
type Options = typeof options;
declare module "../types.js" {
    interface EmbeddedOptions extends Options {
    }
    interface EmbeddedDefaultCommentsHolder extends DefaultCommentsHolder {
    }
    interface EmbeddedDefaultTagsHolder extends DefaultTagsHolder {
    }
    interface PluginEmbedOptions {
        /**
         * @deprecated Please use `embeddedEsComments` or `embeddedEsTags`.
         */
        [EMBEDDED_LANGUAGE_IDENTIFIERS]?: (Comments[number] | Tags[number])[];
        [EMBEDDED_LANGUAGE_COMMENTS]?: Comments;
        [EMBEDDED_LANGUAGE_TAGS]?: Tags;
        [EMBEDDED_LANGUAGE_PARSER]?: EsParser;
    }
}
export {};
