import { ProcessedResult } from './process';
import { CliArguments, Context, PackageJson } from './index';
import { MapLike } from 'typescript';
export interface EntryConfig {
    file: string;
    label?: string;
    aliases: MapLike<string[]>;
    extensions: string[];
}
export interface UnimportedConfig {
    preset?: string;
    flow?: boolean;
    entry?: (string | {
        file: string;
        ignore?: string | string[];
        label?: string;
        aliases?: MapLike<string[]>;
        extensions?: string[];
        extend?: {
            aliases?: MapLike<string[]>;
            extensions?: string[];
        };
    })[];
    ignorePatterns?: string[];
    ignoreUnresolved: string[];
    ignoreUnimported: string[];
    ignoreUnused: string[];
    respectGitignore?: boolean;
    moduleDirectory?: string[];
    rootDir?: string;
    extensions?: string[];
    assetExtensions?: string[];
    aliases?: MapLike<string[]>;
    pathTransforms?: MapLike<string>;
    scannedDirs?: string[];
}
type PresetParams = {
    packageJson: PackageJson;
    hasPackage: (name: string) => boolean;
};
export type Preset = {
    name: string;
    isMatch: (options: PresetParams) => Promise<boolean> | boolean;
    getConfig: (options: PresetParams) => Promise<UnimportedConfig> | UnimportedConfig;
};
export interface Config {
    version: string;
    preset?: string;
    flow?: boolean;
    entryFiles: EntryConfig[];
    ignorePatterns: string[];
    ignoreUnresolved: string[];
    ignoreUnimported: string[];
    ignoreUnused: string[];
    respectGitignore: boolean;
    moduleDirectory?: string[];
    rootDir?: string;
    extensions: string[];
    assetExtensions: string[];
    pathTransforms?: MapLike<string>;
    scannedDirs?: string[];
}
export declare function expandGlob(patterns: string | string[], options?: {
    ignore?: string | string[];
}): Promise<string[]>;
export declare function __clearCachedConfig(): void;
export declare function getPreset(name?: string): Promise<UnimportedConfig | undefined>;
export declare function getConfig(args?: CliArguments): Promise<Config>;
export declare function writeConfig(config: Partial<Config>): Promise<void>;
export declare function updateAllowLists(files: ProcessedResult, context: Context): Promise<void>;
export {};
