import { StormConfig } from '@storm-software/config';

type LogLevel = 0 | 10 | 20 | 30 | 35 | 40 | 60 | 70 | 100;
declare const LogLevel: {
    readonly SILENT: LogLevel;
    readonly FATAL: LogLevel;
    readonly ERROR: LogLevel;
    readonly WARN: LogLevel;
    readonly SUCCESS: LogLevel;
    readonly INFO: LogLevel;
    readonly DEBUG: LogLevel;
    readonly TRACE: LogLevel;
    readonly ALL: LogLevel;
};
type LogLevelLabel = "silent" | "fatal" | "error" | "warn" | "success" | "info" | "debug" | "trace" | "all";
declare const LogLevelLabel: {
    readonly SILENT: LogLevelLabel;
    readonly FATAL: LogLevelLabel;
    readonly ERROR: LogLevelLabel;
    readonly WARN: LogLevelLabel;
    readonly SUCCESS: LogLevelLabel;
    readonly INFO: LogLevelLabel;
    readonly DEBUG: LogLevelLabel;
    readonly TRACE: LogLevelLabel;
    readonly ALL: LogLevelLabel;
};
type Logger = {
    fatal: (message?: any) => void;
    error: (message?: any) => void;
    warning: (message?: any) => void;
    info: (message?: any) => void;
    success: (message?: any) => void;
    debug: (message?: any) => void;
    trace: (message?: any) => void;
    getStopwatch: (name: string) => () => void;
};
interface BaseTokenizerOptions {
    workspaceRoot?: string;
    config?: StormConfig;
}
interface ProjectTokenizerOptions extends BaseTokenizerOptions {
    projectRoot?: string;
    projectName?: string;
    sourceRoot?: string;
}
type DeepPartial<T> = {
    [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
};

export { type BaseTokenizerOptions, type DeepPartial, LogLevel, LogLevelLabel, type Logger, type ProjectTokenizerOptions };
