import { Ref } from 'vue';
import { FieldsBridge, BluepicField, BluepicFieldGroup } from '@bluepic/types';
export type MobileFieldsSlide = {
    fields: BluepicField[];
    originalField?: BluepicFieldGroup;
};
export declare function modelField(model: BluepicField['model'], data: Ref<{
    [k: string]: unknown;
}>): {
    [x: string]: unknown;
};
export declare function flattenFields(fields: BluepicField[]): MobileFieldsSlide[];
export declare function flattenFieldTable(fields: BluepicField[]): BluepicField[];
export declare function useMobileFields(fields: Ref<BluepicField[]>): {
    mobileFields: import("vue").ComputedRef<{
        originalField: BluepicFieldGroup | undefined;
        fields: BluepicField[];
    }[]>;
};
export declare function useFields(fields: Ref<BluepicField[]>): {
    fields: Ref<BluepicField[], BluepicField[]>;
    data: Ref<{
        [k: string]: unknown;
    } | undefined, {
        [k: string]: unknown;
    } | undefined>;
    bridge: FieldsBridge;
    modelField: (model: BluepicField["model"]) => {
        [x: string]: unknown;
    };
    wrapFieldProps: (fieldProps: BluepicField["props"]) => {
        [k: string]: any;
    };
};
export declare function getFieldDescription(field: BluepicField): string;
export declare function getFieldsDescription(fields: BluepicField[]): string;
export declare function renderFieldIcon(type: BluepicField['type'], active: boolean, style?: {
    [k: string]: string;
}): import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
    [key: string]: any;
}>;
export declare function getDefaultValueForFieldModel(field: BluepicField, modelKey: string): any;
export declare function realizeField(field: BluepicField): BluepicField;
export declare function stringifyField(field: BluepicField): {
    props: {
        [k: string]: any;
    };
    type: "Image";
    model: {
        modelValue: string;
    };
    description?: string;
    detailedDescription?: string;
    layout: {
        minWidth: string;
        maxWidth: string;
    };
    hitbox?: import("@bluepic/types").Hitbox;
    frameIndex?: number;
} | {
    props: {
        [k: string]: any;
    };
    type: "Text";
    model: {
        modelValue: string;
    };
    description?: string;
    detailedDescription?: string;
    layout: {
        minWidth: string;
        maxWidth: string;
    };
    hitbox?: import("@bluepic/types").Hitbox;
    frameIndex?: number;
} | {
    props: {
        [k: string]: any;
    };
    type: "HighlightedText";
    model: {
        modelValue: string;
    };
    description?: string;
    detailedDescription?: string;
    layout: {
        minWidth: string;
        maxWidth: string;
    };
    hitbox?: import("@bluepic/types").Hitbox;
    frameIndex?: number;
} | {
    props: {
        [k: string]: any;
    };
    type: "ImageAdjust";
    model: {
        image: string;
        adjust: string;
    };
    description?: string;
    detailedDescription?: string;
    layout: {
        minWidth: string;
        maxWidth: string;
    };
    hitbox?: import("@bluepic/types").Hitbox;
    frameIndex?: number;
} | {
    props: {
        [k: string]: any;
    };
    type: "Group";
    model: {};
    description?: string;
    detailedDescription?: string;
    layout: {
        minWidth: string;
        maxWidth: string;
    };
    hitbox?: import("@bluepic/types").Hitbox;
    frameIndex?: number;
} | {
    props: {
        [k: string]: any;
    };
    type: "Collection";
    model: {
        modelValue: string;
    };
    description?: string;
    detailedDescription?: string;
    layout: {
        minWidth: string;
        maxWidth: string;
    };
    hitbox?: import("@bluepic/types").Hitbox;
    frameIndex?: number;
} | {
    props: {
        [k: string]: any;
    };
    type: "Select";
    model: {
        modelValue: string;
    };
    description?: string;
    detailedDescription?: string;
    layout: {
        minWidth: string;
        maxWidth: string;
    };
    hitbox?: import("@bluepic/types").Hitbox;
    frameIndex?: number;
} | {
    props: {
        [k: string]: any;
    };
    type: "Checkbox";
    model: {
        modelValue: string;
    };
    description?: string;
    detailedDescription?: string;
    layout: {
        minWidth: string;
        maxWidth: string;
    };
    hitbox?: import("@bluepic/types").Hitbox;
    frameIndex?: number;
} | {
    props: {
        [k: string]: any;
    };
    type: "Number";
    model: {
        modelValue: string;
    };
    description?: string;
    detailedDescription?: string;
    layout: {
        minWidth: string;
        maxWidth: string;
    };
    hitbox?: import("@bluepic/types").Hitbox;
    frameIndex?: number;
} | {
    props: {
        [k: string]: any;
    };
    type: "Color";
    model: {
        modelValue: string;
    };
    description?: string;
    detailedDescription?: string;
    layout: {
        minWidth: string;
        maxWidth: string;
    };
    hitbox?: import("@bluepic/types").Hitbox;
    frameIndex?: number;
} | {
    props: {
        [k: string]: any;
    };
    type: "Map";
    model: {
        modelValue: string;
    };
    description?: string;
    detailedDescription?: string;
    layout: {
        minWidth: string;
        maxWidth: string;
    };
    hitbox?: import("@bluepic/types").Hitbox;
    frameIndex?: number;
} | {
    props: {
        [k: string]: any;
    };
    type: "ImageEdit";
    model: {
        modelValue: string;
    };
    description?: string;
    detailedDescription?: string;
    layout: {
        minWidth: string;
        maxWidth: string;
    };
    hitbox?: import("@bluepic/types").Hitbox;
    frameIndex?: number;
} | {
    props: {
        [k: string]: any;
    };
    type: "SelectColor";
    model: {
        modelValue: string;
    };
    description?: string;
    detailedDescription?: string;
    layout: {
        minWidth: string;
        maxWidth: string;
    };
    hitbox?: import("@bluepic/types").Hitbox;
    frameIndex?: number;
} | {
    props: {
        [k: string]: any;
    };
    type: "SelectImage";
    model: {
        modelValue: string;
    };
    description?: string;
    detailedDescription?: string;
    layout: {
        minWidth: string;
        maxWidth: string;
    };
    hitbox?: import("@bluepic/types").Hitbox;
    frameIndex?: number;
} | {
    props: {
        [k: string]: any;
    };
    type: "SelectText";
    model: {
        modelValue: string;
    };
    description?: string;
    detailedDescription?: string;
    layout: {
        minWidth: string;
        maxWidth: string;
    };
    hitbox?: import("@bluepic/types").Hitbox;
    frameIndex?: number;
} | {
    props: {
        [k: string]: any;
    };
    type: "Instruction";
    model: {};
    description?: string;
    detailedDescription?: string;
    layout: {
        minWidth: string;
        maxWidth: string;
    };
    hitbox?: import("@bluepic/types").Hitbox;
    frameIndex?: number;
};
