type JSONValue = string | number | boolean | JSONObject | JSONArray; interface JSONObject { [x: string]: JSONValue; } interface JSONArray extends Array { } export interface AnimationStep { styles: { [key: string]: string; }; delay?: number; } export interface BuilderAnimation { elementId: string; trigger: string; steps: AnimationStep[]; duration: number; delay?: number; easing?: string; id?: string; repeat?: boolean; thresholdPercent?: number; } /** @todo typedoc this */ export interface BuilderBlock { '@type': '@builder.io/sdk:Element'; '@version'?: number; id?: string; tagName?: string; layerName?: string; groupLocked?: boolean; layerLocked?: boolean; /** @todo make alias for properties.class */ class?: string; children?: BuilderBlock[]; responsiveStyles?: { large?: Partial; medium?: Partial; small?: Partial; xsmall?: Partial; }; component?: { name: string; options?: any; tag?: string; }; bindings?: { [key: string]: string; }; meta?: { [key: string]: JSONValue; }; actions?: { [key: string]: string; }; properties?: { [key: string]: string; }; code?: { bindings?: { [key: string]: string; }; actions?: { [key: string]: string; }; }; repeat?: { collection: string; itemName?: string; } | null; animations?: BuilderAnimation[]; style?: Partial; href?: string; /** * generated by the "Hide If" binding */ hide?: boolean; /** * generated by the "Show If" binding */ show?: boolean; } export {};