import type { Component } from '../designer';
/**
 * for setter component props
 */
export interface SetterProps<T = unknown> {
    value: T;
    onChange: (val: T) => void;
}
export interface Setter {
    component: Component;
    defaultProps?: object;
    name?: string;
}
interface RegisterSetterOption {
    overwrite?: boolean;
}
export declare class SetterManager {
    private _settersMap;
    get settersMap(): Map<string, Setter & {
        type: string;
    }>;
    getSetter(type: string): (Setter & {
        type: string;
    }) | undefined;
    buildSettersMap: (setters: Record<string, Setter>) => void;
    registerSetter(type: string, setter: Component | Setter, option?: RegisterSetterOption): void;
    createSetterContent: (setter: any, props: Record<string, any>) => Component;
}
export {};
