import type { ComponentApi, GetStateFn, PropsConfigShape, ResolvedInputProps, ResolvedProps, SetStateFn, StateAccess, StrictFields } from './generic-types';
export declare abstract class BaseController<Api extends ComponentApi> {
    private readonly rawProps;
    private readonly renderProps;
    protected readonly setState: SetStateFn<Api>;
    protected readonly getState: GetStateFn<Api>;
    protected constructor(stateAccess: StateAccess<Api>, propsConfig: PropsConfigShape);
    protected setRawProp<K extends keyof ResolvedInputProps<Api>>(key: K, value: ResolvedInputProps<Api>[K] | undefined): void;
    protected getRawProp<K extends keyof ResolvedInputProps<Api>>(key: K): ResolvedInputProps<Api>[K] | undefined;
    protected setRenderProp<K extends keyof ResolvedProps<Api>>(key: K, value: StrictFields<ResolvedProps<Api>>[K]): void;
    getRenderProp<K extends keyof ResolvedProps<Api>>(key: K): StrictFields<ResolvedProps<Api>>[K];
}
