import { ControlInstance } from '@makeswift/controls';
import { type Action, type UnknownAction } from '../actions';
import type { DescriptorsPropControllers } from '../../prop-controllers/instances';
import type { Descriptor } from '../../prop-controllers/descriptors';
export interface PropControllersHandle<T extends Record<string, Descriptor> = Record<string, Descriptor>> {
    setPropControllers(propControllers: DescriptorsPropControllers<T> | null): void;
}
export declare function isPropControllersHandle(value: unknown): value is PropControllersHandle;
export type State = {
    handles: Map<string, Map<string, PropControllersHandle>>;
    instances: Map<string, Map<string, Record<string, ControlInstance>>>;
};
export declare function getInitialState(): State;
export declare function getPropControllersHandle(state: State, documentKey: string, elementKey: string): PropControllersHandle | null;
export declare function getPropControllers(state: State, documentKey: string, elementKey: string): Record<string, ControlInstance> | null;
export declare function getPropController(state: State, documentKey: string, elementKey: string, propName: string): ControlInstance | null;
export declare function reducer(state: State | undefined, action: Action | UnknownAction): State;
//# sourceMappingURL=prop-controller-handles.d.ts.map