import { ParamType } from '../../../../poly/ParamType';
import { ParamInitValuesTypeMap } from '../../../../params/types/ParamInitValuesTypeMap';
import { TypedParam, BaseParamType } from '../../../../params/_Base';
import { BaseNodeType } from '../../../_Base';
import { ParamOptions } from '../../../../params/utils/OptionsController';
export declare class BaseParamConfig<T extends ParamType> {
    protected _type: T;
    protected _name: string;
    protected _defaultValue: ParamInitValuesTypeMap[T];
    constructor(_type: T, _name: string, _defaultValue: ParamInitValuesTypeMap[T]);
    static fromParam<K extends ParamType>(param: TypedParam<K>): BaseParamConfig<K>;
    type(): T;
    name(): string;
    defaultValue(): ParamInitValuesTypeMap[T];
    paramOptions(): ParamOptions;
    applyToNode(node: BaseNodeType): void;
    executeCallback(node: BaseNodeType, param: BaseParamType): void;
    protected _callback(node: BaseNodeType, param: BaseParamType): void;
}
