import { decorators, EditAnimation, EditColor, EditPattern, EditRgbGradient } from "./edit"; interface BaseWidgetData { propertyKey: string; displayName: string; type: T; getValue: () => V; update: (value: V) => void; } interface BaseWidgetWithRangeData extends BaseWidgetData { min?: number; max?: number; step?: number; unit?: string; } export type ToggleData = BaseWidgetData<"toggle", boolean>; export type StringData = BaseWidgetData<"string", string>; export type CountData = BaseWidgetWithRangeData<"count">; export type SliderData = BaseWidgetWithRangeData<"slider">; export type FaceMaskData = BaseWidgetData<"faceMask", number>; export type FaceData = BaseWidgetData<"face", number>; export type PlaybackFaceData = BaseWidgetData<"playbackFace", number>; export type BitFieldData = BaseWidgetData<"bitField", number> & { values: { [key: string]: number; }; }; export type ColorData = BaseWidgetData<"color", EditColor>; export type GradientData = BaseWidgetData<"gradient", EditRgbGradient | undefined>; export type GrayscalePatternData = BaseWidgetData<"grayscalePattern", EditPattern | undefined>; export type RgbPattern = BaseWidgetData<"rgbPattern", EditPattern | undefined>; export type Animation = BaseWidgetData<"animation", EditAnimation | undefined>; export type UserText = BaseWidgetData<"userText", string | undefined>; /** Type union of all possible widget data types. */ export type EditWidgetData = ToggleData | StringData | CountData | SliderData | FaceMaskData | FaceData | PlaybackFaceData | BitFieldData | ColorData | GradientData | GrayscalePatternData | RgbPattern | Animation | UserText; /** * Iterate other the properties of the given {@link Editable} object * and returns the corresponding list of widgets data. * @param editObj The edit animation object for which to get the widgets data. * @returns An array of {@link EditWidgetData}. */ export declare function getEditWidgetsData(editObj: T, opt?: Readonly<{ exclude?: string[]; onUpdate?: (key: keyof T, value: T[keyof T], oldValue: T[keyof T]) => void; }>): EditWidgetData[]; export {}; //# sourceMappingURL=getEditWidgetsData.d.ts.map