import { ComponentStoreLike } from './models';
import { Action, ComponentStoreConfig, StateOrCallback } from '@mini-rx/common';
import { CreateSelectFnReturn } from './create-state';
export declare function configureComponentStores(config: ComponentStoreConfig): void;
export declare class ComponentStore<StateType extends object> implements ComponentStoreLike<StateType> {
    private config?;
    private readonly extensions;
    private readonly hasUndoExtension;
    private actionsOnQueue;
    private _state;
    get state(): StateType;
    private updateState;
    private subSink;
    private assertState;
    constructor(initialState?: StateType, config?: ComponentStoreConfig | undefined);
    setInitialState(initialState: StateType): void;
    undo(action: Action): void;
    setState: (stateOrCallback: StateOrCallback<StateType>, name?: string | undefined) => Action;
    connect: <K extends keyof StateType, ValueType = StateType[K]>(dict: Record<K, import("rxjs").Observable<ValueType>>) => void;
    effect: <ProvidedType = void, OriginType extends unknown = import("rxjs").Observable<ProvidedType>, ObservableType = OriginType extends import("rxjs").Observable<infer A> ? A : never, ReturnType = ProvidedType | ObservableType extends void ? () => void : (observableOrValue: ObservableType | import("rxjs").Observable<ObservableType>) => void>(effectFn: (origin$: OriginType) => import("rxjs").Observable<unknown>) => ReturnType;
    select: CreateSelectFnReturn<StateType>;
    destroy(): void;
}
export declare function createComponentStore<T extends object>(initialState?: T | undefined, config?: ComponentStoreConfig): ComponentStore<T>;
