import { PropType, DefineComponent, ExtractPropTypes, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
import { MaterialSetter, BlockModel } from '@vtj/core';
import { Context } from '@vtj/renderer';
import { Setter } from '../framework';
export declare const SetterWrapper: DefineComponent<ExtractPropTypes<{
    context: {
        type: PropType<Context | null>;
        default: null;
    };
    current: {
        type: PropType<BlockModel | null>;
        default: null;
    };
    name: StringConstructor;
    label: StringConstructor;
    title: StringConstructor;
    value: {
        type: (BooleanConstructor | ObjectConstructor | StringConstructor | ArrayConstructor | NumberConstructor)[];
        default: undefined;
    };
    setters: {
        type: PropType<string | MaterialSetter | Array<string | MaterialSetter>>;
        required: true;
        default(): Setter[];
    };
    options: {
        type: ArrayConstructor;
        default(): never[];
    };
    variable: {
        type: BooleanConstructor;
        default: boolean;
    };
    removable: {
        type: BooleanConstructor;
        default: boolean;
    };
}>, {}, {}, {
    computedSetters(): {
        component: any;
        name: string;
        label: string;
        props: Record<string, any>;
    }[];
    computedOptions(): unknown[];
    defaultSetter(): string;
}, {
    getSetter(name: string | Setter): Setter;
    changeValue(val: any): void;
    onRemove(name: string): void;
}, ComponentOptionsMixin, ComponentOptionsMixin, ("change" | "remove")[], "change" | "remove", PublicProps, Readonly< ExtractPropTypes<{
    context: {
        type: PropType<Context | null>;
        default: null;
    };
    current: {
        type: PropType<BlockModel | null>;
        default: null;
    };
    name: StringConstructor;
    label: StringConstructor;
    title: StringConstructor;
    value: {
        type: (BooleanConstructor | ObjectConstructor | StringConstructor | ArrayConstructor | NumberConstructor)[];
        default: undefined;
    };
    setters: {
        type: PropType<string | MaterialSetter | Array<string | MaterialSetter>>;
        required: true;
        default(): Setter[];
    };
    options: {
        type: ArrayConstructor;
        default(): never[];
    };
    variable: {
        type: BooleanConstructor;
        default: boolean;
    };
    removable: {
        type: BooleanConstructor;
        default: boolean;
    };
}>> & Readonly<{
    onChange?: ((...args: any[]) => any) | undefined;
    onRemove?: ((...args: any[]) => any) | undefined;
}>, {
    value: string | number | boolean | Record<string, any> | unknown[];
    context: Context | null;
    setters: string | MaterialSetter | (string | MaterialSetter)[];
    options: unknown[];
    current: BlockModel | null;
    removable: boolean;
    variable: boolean;
}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
