export declare type Listener<P, S> = (payload?: P, newState?: S, oldState?: S) => void;
export declare class Store<S, A> {
    protected _listeners: Record<keyof A, Listener<unknown, S>[]>;
    protected _state: S;
    protected _actions: Record<keyof A, (state: S, payload: A[keyof A]) => S | undefined>;
    protected _anyListeners: Listener<unknown, S>[];
    constructor(_listeners: Record<keyof A, Listener<unknown, S>[]>, initialState?: S);
    getState(): S;
    subscribeAny(listener: Listener<unknown, S>): (() => void);
    subscribe<K extends keyof A>(action: K, listener: Listener<A[K], S>): (() => void);
    protected handle<K extends keyof A>(action: K, handler: (s: S, p: A[K]) => S): this;
    dispatch<K extends keyof A>(action: K, payload: A[K]): void;
}
export default Store;
