import { type Middleware } from "exome";
export interface DevtoolsExtensionInterface {
    connect(config: {
        name: string;
        maxAge?: number;
        details: {
            version: string;
        };
    }): DevtoolsExtensionConnectionInterface;
}
export interface DevtoolsExtensionConnectionInterface {
    disconnect(): void;
    send(data: {
        event: "update";
        type: "all";
        payload: {
            actions: Action[];
            states: [string, any][];
        };
    }): void;
    send(data: {
        event: "update";
        type: "action";
        payload: Action;
    }): void;
    send(data: {
        event: "update";
        type: "state";
        payload: [string, any] | [string, any, string];
    }): void;
    send(data: {
        event: "send";
        type: "actions";
        payload: Action[];
    }): void;
    send(data: {
        event: "send";
        type: "action";
        payload: Action;
    }): void;
    send(data: {
        event: "send";
        type: "states";
        payload: [string, any][];
    }): void;
    send(data: {
        event: "send";
        type: "state";
        payload: [string, any];
    }): void;
    subscribe(cb: (data: {
        type: "sync";
    }) => void): () => void;
}
export interface ExomeDevtoolsConfig {
    name: string;
    maxAge?: number;
    ignoreListActions?: string[];
    ignoreListStores?: string[];
}
/**
 * Subscribes to Exome Developer Tools.
 * https://chromewebstore.google.com/detail/exome-developer-tools/pcanmpamoedhpfpbjajlkpicbikbnhdg
 */
export declare const exomeDevtools: ({ name, maxAge, ignoreListActions, ignoreListStores, }: ExomeDevtoolsConfig) => Middleware;
interface Action {
    id: string;
    name: string;
    payload: any[];
    instance: string;
    depth: number;
    now: number;
    time?: number;
    trace: string;
    error?: string;
    response?: string;
    before: Record<string, any>;
    after?: Record<string, any>;
}
export {};
