import { DataShape, FieldType } from '@vue-skuilder/common';
export interface MediaInputs {
    [key: `audio-${number}`]: unknown;
    [key: `image-${number}`]: unknown;
}
export interface FieldInputStore {
    /**
     * The
     */
    dataShape: DataShape | null;
    /**
     * Raw input field values by field name - the user-edited submissions
     */
    inputs: Record<string, unknown>;
    /**
     * additions from the MediaDragDrop editor.
     */
    mediaInputs: MediaInputs;
    inputIsValid: boolean;
    /**
     * Validation status of each field - all must be true for the form to be valid and the data to be submissable
     */
    validation: Record<string, boolean>;
    /**
     * Input prepared for sending to the database
     */
    convertedInput: Record<string, unknown>;
    /**
     * Input prepared for local rendering in a preview
     */
    previewInput: Record<string, unknown>;
}
export declare const useFieldInputStore: import("pinia").StoreDefinition<"fieldStore", FieldInputStore, {
    isValidated(): boolean;
    getPreview: (state: {
        dataShape: {
            name: import("@vue-skuilder/common").DataShapeName;
            fields: {
                name: string;
                type: FieldType;
                validator?: {
                    instructions?: string | undefined;
                    placeholder?: string | undefined;
                    test: import("@vue-skuilder/common").ValidatingFunction;
                } | undefined;
                tagger?: import("@vue-skuilder/common").Tagger | undefined;
                generateELO?: ((x: unknown) => import("@vue-skuilder/common").CourseElo) | undefined;
            }[];
        } | null;
        inputs: Record<string, unknown>;
        mediaInputs: MediaInputs;
        inputIsValid: boolean;
        validation: Record<string, boolean>;
        convertedInput: Record<string, unknown>;
        previewInput: Record<string, unknown>;
    } & import("pinia").PiniaCustomStateProperties<FieldInputStore>) => Record<string, unknown>;
    getConverted: (state: {
        dataShape: {
            name: import("@vue-skuilder/common").DataShapeName;
            fields: {
                name: string;
                type: FieldType;
                validator?: {
                    instructions?: string | undefined;
                    placeholder?: string | undefined;
                    test: import("@vue-skuilder/common").ValidatingFunction;
                } | undefined;
                tagger?: import("@vue-skuilder/common").Tagger | undefined;
                generateELO?: ((x: unknown) => import("@vue-skuilder/common").CourseElo) | undefined;
            }[];
        } | null;
        inputs: Record<string, unknown>;
        mediaInputs: MediaInputs;
        inputIsValid: boolean;
        validation: Record<string, boolean>;
        convertedInput: Record<string, unknown>;
        previewInput: Record<string, unknown>;
    } & import("pinia").PiniaCustomStateProperties<FieldInputStore>) => Record<string, unknown>;
}, {
    $reset(): void;
    setFieldValue(fieldName: string, value: unknown): void;
    setMedia(fieldName: keyof MediaInputs, media: {
        content_type: string;
        data: Blob;
    }): void;
    validate(): void;
    convert(): void;
    clearMediaEntries(): void;
    clearField(fieldName: string): void;
}>;
//# sourceMappingURL=useFieldInputStore.d.ts.map