import { z } from 'zod';
export declare function isDeletedAsset(meta: Asset | DeletedAsset): meta is DeletedAsset;
export type DeletedAsset = z.infer<typeof deletedAssetSchema>;
export declare const deletedAssetSchema: z.ZodObject<{
    path: z.ZodString;
    id: z.ZodDefault<z.ZodString>;
    version: z.ZodDefault<z.ZodNumber>;
    deleted: z.ZodLiteral<true>;
    importable: z.ZodDefault<z.ZodLiteral<false>>;
}, "strip", z.ZodTypeAny, {
    path: string;
    id: string;
    version: number;
    importable: false;
    deleted: true;
}, {
    path: string;
    deleted: true;
    id?: string | undefined;
    version?: number | undefined;
    importable?: false | undefined;
}>;
export type Asset = z.infer<typeof assetSchema>;
export declare const assetSchema: z.ZodObject<{
    path: z.ZodString;
    id: z.ZodDefault<z.ZodString>;
    version: z.ZodDefault<z.ZodNumber>;
    importable: z.ZodDefault<z.ZodBoolean>;
    deleted: z.ZodOptional<z.ZodLiteral<false>>;
    checksum: z.ZodOptional<z.ZodString>;
    updatedAt: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodDate]>, string, string | Date>;
}, "strip", z.ZodTypeAny, {
    path: string;
    id: string;
    version: number;
    importable: boolean;
    updatedAt: string;
    deleted?: false | undefined;
    checksum?: string | undefined;
}, {
    path: string;
    updatedAt: (string | Date) & (string | Date | undefined);
    id?: string | undefined;
    version?: number | undefined;
    importable?: boolean | undefined;
    deleted?: false | undefined;
    checksum?: string | undefined;
}>;
export type AudioAsset = z.infer<typeof audioFileSchema>;
export declare const audioFileSchema: z.ZodObject<{
    path: z.ZodString;
    id: z.ZodDefault<z.ZodString>;
    version: z.ZodDefault<z.ZodNumber>;
    importable: z.ZodDefault<z.ZodBoolean>;
    deleted: z.ZodOptional<z.ZodLiteral<false>>;
    checksum: z.ZodOptional<z.ZodString>;
    updatedAt: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodDate]>, string, string | Date>;
    duration: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
    path: string;
    id: string;
    version: number;
    importable: boolean;
    updatedAt: string;
    deleted?: false | undefined;
    checksum?: string | undefined;
    duration?: number | undefined;
}, {
    path: string;
    updatedAt: (string | Date) & (string | Date | undefined);
    id?: string | undefined;
    version?: number | undefined;
    importable?: boolean | undefined;
    deleted?: false | undefined;
    checksum?: string | undefined;
    duration?: number | undefined;
}>;
export declare const sourceConfigBaseSchema: z.ZodObject<{
    id: z.ZodDefault<z.ZodString>;
    type: z.ZodLiteral<"audio">;
    name: z.ZodOptional<z.ZodString>;
    description: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    type: "audio";
    id: string;
    name?: string | undefined;
    description?: string | undefined;
}, {
    type: "audio";
    id?: string | undefined;
    name?: string | undefined;
    description?: string | undefined;
}>;
export type AudioSourceConfig = z.infer<typeof audioSourceConfigSchema>;
export declare const audioSourceConfigSchema: z.ZodObject<{
    name: z.ZodOptional<z.ZodString>;
    id: z.ZodDefault<z.ZodString>;
    description: z.ZodOptional<z.ZodString>;
    type: z.ZodDefault<z.ZodLiteral<"audio">>;
    groupBy: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
    files: z.ZodDefault<z.ZodArray<z.ZodUnion<[z.ZodObject<{
        path: z.ZodString;
        id: z.ZodDefault<z.ZodString>;
        version: z.ZodDefault<z.ZodNumber>;
        importable: z.ZodDefault<z.ZodBoolean>;
        deleted: z.ZodOptional<z.ZodLiteral<false>>;
        checksum: z.ZodOptional<z.ZodString>;
        updatedAt: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodDate]>, string, string | Date>;
        duration: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        path: string;
        id: string;
        version: number;
        importable: boolean;
        updatedAt: string;
        deleted?: false | undefined;
        checksum?: string | undefined;
        duration?: number | undefined;
    }, {
        path: string;
        updatedAt: (string | Date) & (string | Date | undefined);
        id?: string | undefined;
        version?: number | undefined;
        importable?: boolean | undefined;
        deleted?: false | undefined;
        checksum?: string | undefined;
        duration?: number | undefined;
    }>, z.ZodObject<{
        path: z.ZodString;
        id: z.ZodDefault<z.ZodString>;
        version: z.ZodDefault<z.ZodNumber>;
        deleted: z.ZodLiteral<true>;
        importable: z.ZodDefault<z.ZodLiteral<false>>;
    }, "strip", z.ZodTypeAny, {
        path: string;
        id: string;
        version: number;
        importable: false;
        deleted: true;
    }, {
        path: string;
        deleted: true;
        id?: string | undefined;
        version?: number | undefined;
        importable?: false | undefined;
    }>]>, "many">>;
}, "strip", z.ZodTypeAny, {
    type: "audio";
    id: string;
    files: ({
        path: string;
        id: string;
        version: number;
        importable: boolean;
        updatedAt: string;
        deleted?: false | undefined;
        checksum?: string | undefined;
        duration?: number | undefined;
    } | {
        path: string;
        id: string;
        version: number;
        importable: false;
        deleted: true;
    })[];
    groupBy: string[];
    name?: string | undefined;
    description?: string | undefined;
}, {
    name?: string | undefined;
    id?: string | undefined;
    description?: string | undefined;
    type?: "audio" | undefined;
    groupBy?: string[] | undefined;
    files?: ({
        path: string;
        updatedAt: (string | Date) & (string | Date | undefined);
        id?: string | undefined;
        version?: number | undefined;
        importable?: boolean | undefined;
        deleted?: false | undefined;
        checksum?: string | undefined;
        duration?: number | undefined;
    } | {
        path: string;
        deleted: true;
        id?: string | undefined;
        version?: number | undefined;
        importable?: false | undefined;
    })[] | undefined;
}>;
export type SourceConfig = z.infer<typeof sourceConfigSchema>;
export declare const sourceConfigSchema: z.ZodObject<{
    name: z.ZodOptional<z.ZodString>;
    id: z.ZodDefault<z.ZodString>;
    description: z.ZodOptional<z.ZodString>;
    type: z.ZodDefault<z.ZodLiteral<"audio">>;
    groupBy: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
    files: z.ZodDefault<z.ZodArray<z.ZodUnion<[z.ZodObject<{
        path: z.ZodString;
        id: z.ZodDefault<z.ZodString>;
        version: z.ZodDefault<z.ZodNumber>;
        importable: z.ZodDefault<z.ZodBoolean>;
        deleted: z.ZodOptional<z.ZodLiteral<false>>;
        checksum: z.ZodOptional<z.ZodString>;
        updatedAt: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodDate]>, string, string | Date>;
        duration: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        path: string;
        id: string;
        version: number;
        importable: boolean;
        updatedAt: string;
        deleted?: false | undefined;
        checksum?: string | undefined;
        duration?: number | undefined;
    }, {
        path: string;
        updatedAt: (string | Date) & (string | Date | undefined);
        id?: string | undefined;
        version?: number | undefined;
        importable?: boolean | undefined;
        deleted?: false | undefined;
        checksum?: string | undefined;
        duration?: number | undefined;
    }>, z.ZodObject<{
        path: z.ZodString;
        id: z.ZodDefault<z.ZodString>;
        version: z.ZodDefault<z.ZodNumber>;
        deleted: z.ZodLiteral<true>;
        importable: z.ZodDefault<z.ZodLiteral<false>>;
    }, "strip", z.ZodTypeAny, {
        path: string;
        id: string;
        version: number;
        importable: false;
        deleted: true;
    }, {
        path: string;
        deleted: true;
        id?: string | undefined;
        version?: number | undefined;
        importable?: false | undefined;
    }>]>, "many">>;
}, "strip", z.ZodTypeAny, {
    type: "audio";
    id: string;
    files: ({
        path: string;
        id: string;
        version: number;
        importable: boolean;
        updatedAt: string;
        deleted?: false | undefined;
        checksum?: string | undefined;
        duration?: number | undefined;
    } | {
        path: string;
        id: string;
        version: number;
        importable: false;
        deleted: true;
    })[];
    groupBy: string[];
    name?: string | undefined;
    description?: string | undefined;
}, {
    name?: string | undefined;
    id?: string | undefined;
    description?: string | undefined;
    type?: "audio" | undefined;
    groupBy?: string[] | undefined;
    files?: ({
        path: string;
        updatedAt: (string | Date) & (string | Date | undefined);
        id?: string | undefined;
        version?: number | undefined;
        importable?: boolean | undefined;
        deleted?: false | undefined;
        checksum?: string | undefined;
        duration?: number | undefined;
    } | {
        path: string;
        deleted: true;
        id?: string | undefined;
        version?: number | undefined;
        importable?: false | undefined;
    })[] | undefined;
}>;
export type GroupedSourceConfig<T extends SourceConfig> = T & {
    groups: {
        name: string;
        files: T['files'];
    }[];
};
export type ConfigFile = z.infer<typeof configFileSchema>;
export declare const configFileSchema: z.ZodObject<{
    version: z.ZodDefault<z.ZodLiteral<1>>;
    sources: z.ZodDefault<z.ZodArray<z.ZodObject<{
        name: z.ZodOptional<z.ZodString>;
        id: z.ZodDefault<z.ZodString>;
        description: z.ZodOptional<z.ZodString>;
        type: z.ZodDefault<z.ZodLiteral<"audio">>;
        groupBy: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
        files: z.ZodDefault<z.ZodArray<z.ZodUnion<[z.ZodObject<{
            path: z.ZodString;
            id: z.ZodDefault<z.ZodString>;
            version: z.ZodDefault<z.ZodNumber>;
            importable: z.ZodDefault<z.ZodBoolean>;
            deleted: z.ZodOptional<z.ZodLiteral<false>>;
            checksum: z.ZodOptional<z.ZodString>;
            updatedAt: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodDate]>, string, string | Date>;
            duration: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            path: string;
            id: string;
            version: number;
            importable: boolean;
            updatedAt: string;
            deleted?: false | undefined;
            checksum?: string | undefined;
            duration?: number | undefined;
        }, {
            path: string;
            updatedAt: (string | Date) & (string | Date | undefined);
            id?: string | undefined;
            version?: number | undefined;
            importable?: boolean | undefined;
            deleted?: false | undefined;
            checksum?: string | undefined;
            duration?: number | undefined;
        }>, z.ZodObject<{
            path: z.ZodString;
            id: z.ZodDefault<z.ZodString>;
            version: z.ZodDefault<z.ZodNumber>;
            deleted: z.ZodLiteral<true>;
            importable: z.ZodDefault<z.ZodLiteral<false>>;
        }, "strip", z.ZodTypeAny, {
            path: string;
            id: string;
            version: number;
            importable: false;
            deleted: true;
        }, {
            path: string;
            deleted: true;
            id?: string | undefined;
            version?: number | undefined;
            importable?: false | undefined;
        }>]>, "many">>;
    }, "strip", z.ZodTypeAny, {
        type: "audio";
        id: string;
        files: ({
            path: string;
            id: string;
            version: number;
            importable: boolean;
            updatedAt: string;
            deleted?: false | undefined;
            checksum?: string | undefined;
            duration?: number | undefined;
        } | {
            path: string;
            id: string;
            version: number;
            importable: false;
            deleted: true;
        })[];
        groupBy: string[];
        name?: string | undefined;
        description?: string | undefined;
    }, {
        name?: string | undefined;
        id?: string | undefined;
        description?: string | undefined;
        type?: "audio" | undefined;
        groupBy?: string[] | undefined;
        files?: ({
            path: string;
            updatedAt: (string | Date) & (string | Date | undefined);
            id?: string | undefined;
            version?: number | undefined;
            importable?: boolean | undefined;
            deleted?: false | undefined;
            checksum?: string | undefined;
            duration?: number | undefined;
        } | {
            path: string;
            deleted: true;
            id?: string | undefined;
            version?: number | undefined;
            importable?: false | undefined;
        })[] | undefined;
    }>, "many">>;
}, "strip", z.ZodTypeAny, {
    version: 1;
    sources: {
        type: "audio";
        id: string;
        files: ({
            path: string;
            id: string;
            version: number;
            importable: boolean;
            updatedAt: string;
            deleted?: false | undefined;
            checksum?: string | undefined;
            duration?: number | undefined;
        } | {
            path: string;
            id: string;
            version: number;
            importable: false;
            deleted: true;
        })[];
        groupBy: string[];
        name?: string | undefined;
        description?: string | undefined;
    }[];
}, {
    version?: 1 | undefined;
    sources?: {
        name?: string | undefined;
        id?: string | undefined;
        description?: string | undefined;
        type?: "audio" | undefined;
        groupBy?: string[] | undefined;
        files?: ({
            path: string;
            updatedAt: (string | Date) & (string | Date | undefined);
            id?: string | undefined;
            version?: number | undefined;
            importable?: boolean | undefined;
            deleted?: false | undefined;
            checksum?: string | undefined;
            duration?: number | undefined;
        } | {
            path: string;
            deleted: true;
            id?: string | undefined;
            version?: number | undefined;
            importable?: false | undefined;
        })[] | undefined;
    }[] | undefined;
}>;
//# sourceMappingURL=assetSource.types.d.ts.map