export type Action = {
    type: string;
} & Record<string, any>;
export type Reducer<S> = (state: S, action: Action) => S;
export type Store<S> = {
    getState: () => S;
    dispatch: (action: Action) => void;
    subscribe: (listener: () => void) => () => void;
};
export declare function createStore<S extends Record<string, any>>(initialState: S, reducer: Reducer<S>): Store<S>;
