export type HiddenFieldSchema = {
    type: 'hidden';
    keyframable?: boolean;
};
export type NumberFieldSchema = {
    type: 'number';
    min?: number;
    max?: number;
    step?: number;
    default: number | undefined;
    description?: string;
    hiddenFromList: boolean;
    keyframable?: boolean;
};
export type BooleanFieldSchema = {
    type: 'boolean';
    default: boolean;
    description?: string;
    keyframable?: boolean;
};
export type RotationCssFieldSchema = {
    type: 'rotation-css';
    step?: number;
    default: string | undefined;
    description?: string;
    keyframable?: boolean;
};
export type RotationDegreesFieldSchema = {
    type: 'rotation-degrees';
    min?: number;
    max?: number;
    step?: number;
    default: number | undefined;
    description?: string;
    keyframable?: boolean;
};
export type TranslateFieldSchema = {
    type: 'translate';
    step?: number;
    default: string | undefined;
    description?: string;
    keyframable?: boolean;
};
export type ScaleFieldSchema = {
    type: 'scale';
    min?: number;
    max?: number;
    step?: number;
    default: number | string | undefined;
    description?: string;
    keyframable?: boolean;
};
export type UvCoordinateFieldSchema = {
    type: 'uv-coordinate';
    min?: number;
    max?: number;
    step?: number;
    default: readonly [number, number] | undefined;
    description?: string;
    keyframable?: boolean;
};
export type ColorFieldSchema = {
    type: 'color';
    default: string | undefined;
    description?: string;
    keyframable?: boolean;
};
export type EnumFieldSchema = {
    type: 'enum';
    default: string;
    description?: string;
    variants: Record<string, SequenceSchema>;
    keyframable?: boolean;
};
export type NumberArrayItemSchema = Omit<NumberFieldSchema, 'default' | 'description' | 'hiddenFromList' | 'keyframable'>;
export type BooleanArrayItemSchema = Omit<BooleanFieldSchema, 'default' | 'description' | 'keyframable'>;
export type RotationCssArrayItemSchema = Omit<RotationCssFieldSchema, 'default' | 'description' | 'keyframable'>;
export type RotationDegreesArrayItemSchema = Omit<RotationDegreesFieldSchema, 'default' | 'description' | 'keyframable'>;
export type TranslateArrayItemSchema = Omit<TranslateFieldSchema, 'default' | 'description' | 'keyframable'>;
export type UvCoordinateArrayItemSchema = Omit<UvCoordinateFieldSchema, 'default' | 'description' | 'keyframable'>;
export type ColorArrayItemSchema = Omit<ColorFieldSchema, 'default' | 'description' | 'keyframable'>;
export type EnumArrayItemSchema = {
    type: 'enum';
    variants: readonly string[];
};
export type ArrayItemFieldSchema = NumberArrayItemSchema | BooleanArrayItemSchema | RotationCssArrayItemSchema | RotationDegreesArrayItemSchema | TranslateArrayItemSchema | UvCoordinateArrayItemSchema | ColorArrayItemSchema | EnumArrayItemSchema;
export type ArrayFieldSchema = {
    type: 'array';
    item: ArrayItemFieldSchema;
    default: readonly unknown[] | undefined;
    minLength?: number;
    maxLength?: number;
    newItemDefault: unknown;
    description?: string;
    keyframable?: false;
};
export type VisibleFieldSchema = NumberFieldSchema | BooleanFieldSchema | RotationCssFieldSchema | RotationDegreesFieldSchema | TranslateFieldSchema | ScaleFieldSchema | UvCoordinateFieldSchema | ColorFieldSchema | ArrayFieldSchema | EnumFieldSchema;
export type SequenceFieldSchema = VisibleFieldSchema | HiddenFieldSchema;
export type SequenceSchema = {
    [key: string]: SequenceFieldSchema;
};
export type SchemaKeysRecord<S extends SequenceSchema> = Record<keyof S, unknown>;
export declare const sequenceVisualStyleSchema: {
    readonly 'style.translate': {
        readonly type: "translate";
        readonly step: 1;
        readonly default: "0px 0px";
        readonly description: "Offset";
    };
    readonly 'style.scale': {
        readonly type: "scale";
        readonly min: 0.05;
        readonly max: 100;
        readonly step: 0.01;
        readonly default: 1;
        readonly description: "Scale";
    };
    readonly 'style.rotate': {
        readonly type: "rotation-css";
        readonly step: 1;
        readonly default: "0deg";
        readonly description: "Rotation";
    };
    readonly 'style.opacity': {
        readonly type: "number";
        readonly min: 0;
        readonly max: 1;
        readonly step: 0.01;
        readonly default: 1;
        readonly description: "Opacity";
        readonly hiddenFromList: false;
    };
};
export declare const sequencePremountSchema: {
    readonly premountFor: {
        readonly type: "number";
        readonly default: 0;
        readonly description: "Premount For";
        readonly min: 0;
        readonly step: 1;
        readonly hiddenFromList: false;
    };
    readonly postmountFor: {
        readonly type: "number";
        readonly default: 0;
        readonly min: 0;
        readonly step: 1;
        readonly hiddenFromList: true;
    };
    readonly styleWhilePremounted: {
        readonly type: "hidden";
    };
    readonly styleWhilePostmounted: {
        readonly type: "hidden";
    };
};
export declare const sequenceStyleSchema: {
    readonly 'style.translate': {
        readonly type: "translate";
        readonly step: 1;
        readonly default: "0px 0px";
        readonly description: "Offset";
    };
    readonly 'style.scale': {
        readonly type: "scale";
        readonly min: 0.05;
        readonly max: 100;
        readonly step: 0.01;
        readonly default: 1;
        readonly description: "Scale";
    };
    readonly 'style.rotate': {
        readonly type: "rotation-css";
        readonly step: 1;
        readonly default: "0deg";
        readonly description: "Rotation";
    };
    readonly 'style.opacity': {
        readonly type: "number";
        readonly min: 0;
        readonly max: 1;
        readonly step: 0.01;
        readonly default: 1;
        readonly description: "Opacity";
        readonly hiddenFromList: false;
    };
    readonly premountFor: {
        readonly type: "number";
        readonly default: 0;
        readonly description: "Premount For";
        readonly min: 0;
        readonly step: 1;
        readonly hiddenFromList: false;
    };
    readonly postmountFor: {
        readonly type: "number";
        readonly default: 0;
        readonly min: 0;
        readonly step: 1;
        readonly hiddenFromList: true;
    };
    readonly styleWhilePremounted: {
        readonly type: "hidden";
    };
    readonly styleWhilePostmounted: {
        readonly type: "hidden";
    };
};
export declare const hiddenField: SequenceFieldSchema;
export declare const durationInFramesField: {
    readonly type: "number";
    readonly default: undefined;
    readonly min: 1;
    readonly step: 1;
    readonly hiddenFromList: true;
};
export declare const fromField: {
    readonly type: "number";
    readonly default: 0;
    readonly step: 1;
    readonly hiddenFromList: true;
};
export declare const sequenceSchema: {
    readonly hidden: BooleanFieldSchema;
    readonly from: {
        readonly type: "number";
        readonly default: 0;
        readonly step: 1;
        readonly hiddenFromList: true;
    };
    readonly durationInFrames: {
        readonly type: "number";
        readonly default: undefined;
        readonly min: 1;
        readonly step: 1;
        readonly hiddenFromList: true;
    };
    readonly layout: {
        readonly type: "enum";
        readonly default: "absolute-fill";
        readonly description: "Layout";
        readonly variants: {
            readonly 'absolute-fill': {
                readonly 'style.translate': {
                    readonly type: "translate";
                    readonly step: 1;
                    readonly default: "0px 0px";
                    readonly description: "Offset";
                };
                readonly 'style.scale': {
                    readonly type: "scale";
                    readonly min: 0.05;
                    readonly max: 100;
                    readonly step: 0.01;
                    readonly default: 1;
                    readonly description: "Scale";
                };
                readonly 'style.rotate': {
                    readonly type: "rotation-css";
                    readonly step: 1;
                    readonly default: "0deg";
                    readonly description: "Rotation";
                };
                readonly 'style.opacity': {
                    readonly type: "number";
                    readonly min: 0;
                    readonly max: 1;
                    readonly step: 0.01;
                    readonly default: 1;
                    readonly description: "Opacity";
                    readonly hiddenFromList: false;
                };
                readonly premountFor: {
                    readonly type: "number";
                    readonly default: 0;
                    readonly description: "Premount For";
                    readonly min: 0;
                    readonly step: 1;
                    readonly hiddenFromList: false;
                };
                readonly postmountFor: {
                    readonly type: "number";
                    readonly default: 0;
                    readonly min: 0;
                    readonly step: 1;
                    readonly hiddenFromList: true;
                };
                readonly styleWhilePremounted: {
                    readonly type: "hidden";
                };
                readonly styleWhilePostmounted: {
                    readonly type: "hidden";
                };
            };
            readonly none: {};
        };
    };
};
export declare const sequenceSchemaDefaultLayoutNone: SequenceSchema;
