import { RecursivePartial, Settable, Store } from '@zedux/atoms';
import { MachineStateShape } from './types';
/**
 * An extremely low-level Store class that represents a state machine. Don't
 * create this class yourself, use a helper such as @zedux/machine's
 * `injectMachineStore()`
 */
export declare class MachineStore<StateNames extends string = string, EventNames extends string = string, Context extends Record<string, any> | undefined = undefined> extends Store<MachineStateShape<StateNames, Context>> {
    readonly states: Record<StateNames, Record<EventNames, {
        name: StateNames;
        guard?: (context: Context) => boolean;
    }>>;
    private readonly guard?;
    constructor(initialState: StateNames, states: Record<StateNames, Record<EventNames, {
        name: StateNames;
        guard?: (context: Context) => boolean;
    }>>, initialContext?: Context, guard?: ((currentState: MachineStateShape<StateNames, Context>, nextValue: StateNames) => boolean) | undefined);
    getContext: () => Context;
    getValue: () => StateNames;
    is: (stateName: StateNames) => boolean;
    send: (eventName: EventNames, meta?: any) => MachineStateShape<StateNames, Context>;
    setContext: (context: Settable<Context>, meta?: any) => MachineStateShape<StateNames, Context>;
    setContextDeep: (partialContext: Settable<RecursivePartial<Context>, Context>, meta?: any) => MachineStateShape<StateNames, Context>;
}
