import type { FromSchema } from 'json-schema-to-ts';
export declare const shapeName = "Asset";
export declare const shapeId = "ASSET";
export declare const schema: {
    readonly type: "object";
    readonly properties: {
        readonly title: {
            readonly type: "string";
            readonly title: "Title";
            readonly '@mapping': "shapedb:Asset.By5tQOMc";
            readonly '@l10n': true;
        };
        readonly description: {
            readonly type: "string";
            readonly title: "Description";
            readonly '@mapping': "shapedb:Asset.B1Zsra3fx";
            readonly '@l10n': true;
        };
        readonly filename: {
            readonly type: "string";
            readonly title: "Filename";
            readonly '@l10n': false;
            readonly minLength: 1;
            readonly '@mapping': "shapedb:Asset.H1oYQOM9";
        };
        readonly caption: {
            readonly type: "object";
            readonly title: "Caption";
            readonly '@mapping': "shapedb:Asset.SyWVsd98x";
            readonly '@tag': "draftjs";
            readonly '@l10n': true;
        };
        readonly credit: {
            readonly type: "object";
            readonly title: "Credit";
            readonly '@mapping': "shapedb:Asset.Skn_i_5Ll";
            readonly '@tag': "draftjs";
            readonly '@l10n': true;
        };
        readonly path: {
            readonly type: "string";
            readonly title: "Path";
            readonly '@l10n': false;
            readonly minLength: 1;
            readonly '@mapping': "shapedb:Asset.Hk6FQuz5";
        };
        readonly mimeType: {
            readonly type: "string";
            readonly title: "MIME type";
            readonly '@l10n': false;
            readonly '@mapping': "shapedb:Asset.SyCYX_Gq";
        };
        readonly sourceUrl: {
            readonly type: "string";
            readonly title: "Source URL";
            readonly '@l10n': false;
            readonly '@mapping': "shapedb:Asset.SJXSidnXE";
        };
        readonly uploadStatus: {
            readonly type: "string";
            readonly title: "Upload status";
            readonly '@l10n': false;
            readonly '@mapping': "shapedb:Asset.ByeAYXdG9";
        };
        readonly url: {
            readonly type: "string";
            readonly title: "URL";
            readonly '@l10n': false;
            readonly '@dependencies': "{path mimeType uploadStatus filename _id}";
            readonly '@resolver': {
                readonly name: "takeshape:assetUrl";
                readonly service: "takeshape";
            };
        };
        readonly image: {
            readonly title: "Image";
            readonly '@l10n': false;
            readonly '@dependencies': "{path mimeType uploadStatus filename _id}";
            readonly '@resolver': {
                readonly name: "takeshape:assetImage";
                readonly service: "takeshape";
            };
            readonly '@args': {
                readonly type: "object";
                readonly properties: {
                    readonly params: {
                        readonly '@ref': "TSAssetImageParams";
                    };
                };
            };
            readonly '@ref': "TSAssetImage";
        };
        readonly imageMeta: {
            readonly title: "Image metadata";
            readonly '@l10n': false;
            readonly '@dependencies': "{path mimeType uploadStatus filename _id}";
            readonly '@resolver': {
                readonly name: "takeshape:assetImageMeta";
                readonly service: "takeshape";
            };
            readonly '@ref': "TSAssetImageMeta";
        };
    };
    readonly required: ["filename", "path", "url"];
};
export type Asset = FromSchema<typeof schema>;
export declare const validate: import("ajv").ValidateFunction<{
    [x: string]: unknown;
    description?: string | undefined;
    title?: string | undefined;
    caption?: {
        [x: string]: unknown;
    } | undefined;
    credit?: {
        [x: string]: unknown;
    } | undefined;
    mimeType?: string | undefined;
    sourceUrl?: string | undefined;
    uploadStatus?: string | undefined;
    image?: unknown;
    imageMeta?: unknown;
    filename: string;
    path: string;
    url: string;
}>;
