import { PerformAction } from '@redux-devtools/core';
import { Action } from 'redux';
import { ActionCreator, LiftedActionDispatchAction, StoreAction } from '../actions';
export interface Features {
    lock?: boolean;
    export?: string | boolean;
    import?: string | boolean;
    persist?: boolean;
    pause?: boolean;
    reorder?: boolean;
    jump?: boolean;
    skip?: boolean;
    dispatch?: boolean;
    sync?: boolean;
    test?: boolean;
}
export interface Options {
    name?: string | number;
    connectionId?: string | number;
    explicitLib?: string;
    lib?: string;
    actionCreators?: ActionCreator[];
    features: Features;
    serialize?: boolean;
}
export interface State {
    actionsById: {
        [actionId: number]: PerformAction<Action<string>>;
    };
    computedStates: {
        state: unknown;
        error?: string;
    }[];
    currentStateIndex: number;
    nextActionId: number;
    skippedActionIds: number[];
    stagedActionIds: number[];
    committedState?: unknown;
    isLocked?: boolean;
    isPaused?: boolean;
}
export interface InstancesState {
    selected: string | number | null;
    current: string | number;
    sync: boolean;
    connections: {
        [id: string]: (string | number)[];
    };
    options: {
        [id: string]: Options;
    };
    states: {
        [id: string]: State;
    };
    persisted?: boolean;
}
export declare const instancesInitialState: InstancesState;
export declare function dispatchAction(state: InstancesState, { action }: LiftedActionDispatchAction): InstancesState;
export declare function instances(state: InstancesState | undefined, action: StoreAction): InstancesState;
export declare const getActiveInstance: (instances: InstancesState) => string | number;
