import { BaseNodeType } from '../../src/engine/nodes/_Base';
import { ParamConstructorMap } from '../../src/engine/params/types/ParamConstructorMap';
import { ParamInitValuesTypeMap } from '../../src/engine/params/types/ParamInitValuesTypeMap';
import { ParamType } from '../../src/engine/poly/ParamType';
import { PolyDictionary } from '../../src/types/GlobalTypes';
export interface PresetEntry<T extends ParamType> {
    param: ParamConstructorMap[T];
    value: ParamInitValuesTypeMap[T];
}
export declare class BasePreset {
    private _entries;
    addEntry<T extends ParamType>(param: ParamConstructorMap[T], value: ParamInitValuesTypeMap[T]): this;
    entries(): PresetEntry<ParamType>[];
}
export declare class NodePresetsCollection {
    private _presetsByName;
    setPresets(presetsByName: PolyDictionary<BasePreset>): this;
    addPreset(presetName: string, preset: BasePreset): this;
    private _presetNames;
    private _updatePresetNames;
    presetNames(): string[];
    getPreset(presetName: string): BasePreset | undefined;
}
export type PresetsCollectionFactory<N extends BaseNodeType> = (node: N) => NodePresetsCollection;
import { BaseNodeClass } from '../../src/engine/nodes/_Base';
export interface PresetRegister<N extends typeof BaseNodeClass, NI extends BaseNodeClass> {
    nodeClass: N;
    setupFunc: PresetsCollectionFactory<NI>;
}
