import { Ctx, BooleanAtom } from '@reatom/framework';
import { getColor } from './utils';
export { getColor };
export interface DevtoolsOptions {
    separator?: string | RegExp | ((name: string) => Array<string>);
    privatePrefix?: string;
    getColor?: typeof getColor;
    visible?: BooleanAtom;
    initSize?: number;
}
export interface DevtoolsState<T = any> {
    (newState: T): void;
    subscribe(cb: (state: T) => void): () => void;
}
export interface Devtools {
    log(name: string, payload?: any): void;
    state<T>(name: string, initState: T): DevtoolsState<T>;
    show(): void;
    hide(): void;
}
export declare const _connectDevtools: (clientCtx: Ctx, { separator, privatePrefix, getColor: _getColor, visible, initSize, }?: DevtoolsOptions) => Promise<void>;
/** @deprecated use `createDevtools` instead */
export declare const connectDevtools: (...[ctx, options]: Parameters<typeof _connectDevtools>) => <T>(name: string, payload: T) => T;
export declare const createDevtools: ({ ctx: clientCtx, initVisibility, ...options }?: Omit<DevtoolsOptions, "visible"> & {
    ctx?: Ctx;
    initVisibility?: boolean;
}) => Devtools;
//# sourceMappingURL=index.d.ts.map