export declare type MainFn<So, Si> = (sources: So) => Si;
export declare type Reducer<T> = (state: T | undefined) => T | undefined;
export declare type Getter<T, R> = (state: T | undefined) => R | undefined;
export declare type Setter<T, R> = (state: T | undefined, childState: R | undefined) => T | undefined;
export declare type Lens<T, R> = {
    get: Getter<T, R>;
    set: Setter<T, R>;
};
export declare type ItemScopeFn = (key: string) => string | object;
export declare type ItemKeyFn<S> = (state: S, index?: number) => string;
export declare type ItemFactoryFn<S, So, Si> = (state: S, index?: number) => MainFn<So, Si>;
export declare type Scope<T, R> = string | number | Lens<T, R>;
export declare type InternalInstances<Si> = {
    dict: Map<string, Si>;
    arr: Array<Si & {
        _key: string;
    }>;
};
