import { Color, ErrorOptions } from './types';
type TerminalTheme = {
    primary: Color;
    shade1?: Color;
    shade2?: Color;
    bgColor?: Color;
    fontColor?: Color;
    pageWidth?: number;
    debugModeColor?: Color;
};
type TerminalConfig = {
    noColor: boolean;
    theme: TerminalTheme;
};
type TerminalConfigRequired = {
    noColor: boolean;
    theme: Required<TerminalTheme>;
};
export type TopkatUtilConfig = {
    env: string;
    isProd: boolean;
    nbOfLogsToKeep: number;
    customTypes: object;
    preprocessLog?: (log: string) => any;
    onError?: (msg: string, extraInfos: ErrorOptions) => any;
    terminal: TerminalConfig;
};
/** Allow dynamic changing of config */
export declare function configFn(): Required<TopkatUtilConfig & {
    terminal: TerminalConfigRequired;
}>;
export declare function registerConfig(customConfig: RecursivePartial<TopkatUtilConfig>): void;
type RecursivePartial<T> = {
    [P in keyof T]?: T[P] extends (infer U)[] ? RecursivePartial<U>[] : T[P] extends object ? RecursivePartial<T[P]> : T[P];
};
export {};
