import { type AnyMachine, type ContextFrom, type EventsFrom, type InterpretArgs, type State } from '@bemedev/app-ts';
import type { Decompose } from '@bemedev/decompose';
import type { types } from '@bemedev/types';
import { type Accessor } from 'solid-js';
export declare const interpret: <const M extends AnyMachine>(...[machine, config]: InterpretArgs<M>) => {
    readonly contains: (...values: string[]) => () => boolean;
    readonly context: <R = Extract<M["context"], types.PrimitiveObject>>(accessor?: ((state: Extract<M["context"], types.PrimitiveObject>) => R) | undefined, equals?: ((prev: R, next: R) => boolean) | undefined) => Accessor<R>;
    readonly dispose: () => Promise<void>;
    readonly dps: () => string[];
    readonly matches: (...values: string[]) => () => boolean;
    readonly pause: () => void;
    readonly reducer: <T>(accessor: Required<[accessor?: ((state: State<Extract<M["context"], types.PrimitiveObject>, import("@bemedev/app-ts/lib/events").ToEvents<Extract<M["eventsMap"], import("@bemedev/app-ts/lib/events").EventsMap>, Extract<M["promiseesMap"], import("@bemedev/app-ts/lib/events").PromiseeMap>>> | {
        context: Extract<M["context"], types.PrimitiveObject>;
        status: import("@bemedev/app-ts").WorkingStatus;
        value: import("@bemedev/app-ts/lib/states").StateValue;
        event: EventsFrom<M>;
        tags?: (string | readonly string[]) | undefined;
    }) => T) | undefined, equals?: ((prev: T, next: T) => boolean) | undefined]>[0]) => <R = T>(accessor?: ((state: T) => R) | undefined, equals?: ((prev: R, next: R) => boolean) | undefined) => Accessor<R>;
    readonly resume: () => void;
    readonly select: ContextFrom<M> extends types.Primitive ? undefined : <D = {
        context: ContextFrom<M>;
        status: import("@bemedev/app-ts").WorkingStatus;
        value: import("@bemedev/app-ts/lib/states").StateValue;
        event: EventsFrom<M>;
        tags?: (string | readonly string[]) | undefined;
    } & Decompose<Required<{
        context: ContextFrom<M>;
    }>, {
        object: "both";
        start: false;
    }>, K extends Extract<keyof D, string> = Extract<keyof D, string>, R = D[K]>(selector: K, equals?: (prev: R, next: R) => boolean) => Accessor<R>;
    readonly send: (_event: import("@bemedev/app-ts/lib/events").EventArg<Extract<M["eventsMap"], import("@bemedev/app-ts/lib/events").EventsMap>>) => void;
    readonly start: () => Promise<void>;
    readonly state: <T = {
        context: ContextFrom<M>;
        status: import("@bemedev/app-ts").WorkingStatus;
        value: import("@bemedev/app-ts/lib/states").StateValue;
        event: EventsFrom<M>;
        tags?: (string | readonly string[]) | undefined;
    }>(accessor?: ((state: State<Extract<M["context"], types.PrimitiveObject>, import("@bemedev/app-ts/lib/events").ToEvents<Extract<M["eventsMap"], import("@bemedev/app-ts/lib/events").EventsMap>, Extract<M["promiseesMap"], import("@bemedev/app-ts/lib/events").PromiseeMap>>> | {
        context: Extract<M["context"], types.PrimitiveObject>;
        status: import("@bemedev/app-ts").WorkingStatus;
        value: import("@bemedev/app-ts/lib/states").StateValue;
        event: EventsFrom<M>;
        tags?: (string | readonly string[]) | undefined;
    }) => T) | undefined, equals?: ((prev: T, next: T) => boolean) | undefined) => Accessor<T>;
    readonly status: () => import("@bemedev/app-ts").WorkingStatus;
    readonly stop: () => void;
    readonly subscribe: import("@bemedev/app-ts").AddSubscriber_F<Extract<M["eventsMap"], import("@bemedev/app-ts/lib/events").EventsMap>, Extract<M["promiseesMap"], import("@bemedev/app-ts/lib/events").PromiseeMap>, Extract<M["context"], types.PrimitiveObject>>;
    readonly tags: () => string | readonly string[] | undefined;
    readonly value: () => import("@bemedev/app-ts/lib/states").StateValue;
    readonly values: string[];
    readonly addOptions: import("@bemedev/app-ts").AddOptions_F<Extract<M["eventsMap"], import("@bemedev/app-ts/lib/events").EventsMap>, Extract<M["promiseesMap"], import("@bemedev/app-ts/lib/events").PromiseeMap>, import("@bemedev/app-ts").PrivateContextFrom<M>, Extract<M["context"], types.PrimitiveObject>, Extract<M["options"], Partial<Record<"actions" | "predicates" | "promises" | "delays" | "machines", any>>>>;
};
//# sourceMappingURL=interpret.d.ts.map