import { CompilerBaseOptions, CompilerCallbacks, CompilerErrorNamespace, CompilerMessageOverride, CompilerMessageOverrideMap, CompilerOptions } from '@keymanapp/developer-utils';
export interface ExtendedCompilerOptions extends CompilerOptions {
    /**
     * Verify that the project meets the requirements of the keymanapp/keyboards
     * or keymanapp/lexical-models repository, e.g. verify that project license is
     * MIT
     */
    forPublishing?: boolean;
    /**
     * Overrides for message reporting
     */
    messageOverrides?: CompilerMessageOverrideMap;
}
/**
 * converts an --message command line parameter `<id>[:level]` and verifies that
 * it is a valid message, returning `null` if it is not a valid id or level. If
 * level is omitted, the message is disabled. Valid levels are Disable, Info,
 * Hint, Warn or Error (can shorten or first character of each).
 *
 * Will report details of any errors to callbacks.reportMessage
 * @param message    command line parameter in format '["KM"]<id>[":"level]'
 * @param callbacks
 * @returns  CompilerMessageOverride map with the new severity level for the
 * message; or `null` if parameter is invalid.
 */
declare function commanderOptionsMessageToCompilerOptionsMessage(message: string, callbacks: CompilerCallbacks): CompilerMessageOverride;
export interface CompilerMessageDetail {
    code: number;
    id: any;
    module: string;
    class: any;
}
export declare function findMessageDetails(code: number, callbacks: CompilerCallbacks): CompilerMessageDetail;
export declare const getMessageIdentifiersSorted: (cls: any) => string[];
/**
 * Gets an array of compiler messages matching the search identifier. Substrings
 * are supported for the id portion of the searchId
 * @param searchNamespace optional namespace to search in, if omitted, searches
 *                        all namespaces
 * @param searchId        a substring to match with optional namespace prefix, e.g.
 *                        "INFO_"
 */
export declare function findMessagesById(searchNamespace: CompilerErrorNamespace, searchId: string): CompilerMessageDetail[];
/**
 * Verifies that a given message is valid and that the severity is allowed to be
 * modified (Info, Hint and Warn only -- Error and Fatal cannot be modified)
 * @param override
 * @param callbacks
 * @returns true if the message can be overridden
 */
declare function checkMessageOverride(override: CompilerMessageOverride, callbacks: CompilerCallbacks): boolean;
export declare function commanderOptionsToBaseOptions(options: any): CompilerBaseOptions;
/**
 * Maps command line compiler options to the compiler API options.
 * @param options
 * @param callbacks
 * @returns
 */
export declare function commanderOptionsToCompilerOptions(options: any, callbacks: CompilerCallbacks): ExtendedCompilerOptions;
/**
 * these are exported only for unit tests, do not use
 */
export declare const unitTestEndpoints: {
    checkMessageOverride: typeof checkMessageOverride;
    commanderOptionsMessageToCompilerOptionsMessage: typeof commanderOptionsMessageToCompilerOptionsMessage;
};
export {};
//# sourceMappingURL=extendedCompilerOptions.d.ts.map