/// <reference types="node" />
import { z } from 'zod';
import { Genre } from '../../types/Genre';
import { Mood } from '../../types/Mood';
export declare const getAlbumSchema: z.ZodObject<{
    userId: z.ZodString;
    albumId: z.ZodString;
}, "strip", z.ZodTypeAny, {
    userId: string;
    albumId: string;
}, {
    userId: string;
    albumId: string;
}>;
export declare type getAlbumRequest = z.input<typeof getAlbumSchema>;
export declare const getAlbumTracksSchema: z.ZodObject<{
    albumId: z.ZodString;
}, "strip", z.ZodTypeAny, {
    albumId: string;
}, {
    albumId: string;
}>;
export declare type getAlbumTracksRequest = z.input<typeof getAlbumTracksSchema>;
export declare const createUploadAlbumMetadataSchema: () => z.ZodObject<{
    albumName: z.ZodString;
    description: z.ZodOptional<z.ZodString>;
    genre: z.ZodEnum<[Genre, ...Genre[]]>;
    license: z.ZodOptional<z.ZodString>;
    mood: z.ZodOptional<z.ZodEnum<[Mood, ...Mood[]]>>;
    releaseDate: z.ZodOptional<z.ZodDate>;
    ddexReleaseIds: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>>;
    tags: z.ZodOptional<z.ZodString>;
    upc: z.ZodOptional<z.ZodString>;
    artists: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        roles: z.ZodArray<z.ZodString, "many">;
        sequence_number: z.ZodNumber;
    }, "strict", z.ZodTypeAny, {
        name: string;
        roles: string[];
        sequence_number: number;
    }, {
        name: string;
        roles: string[];
        sequence_number: number;
    }>, "many">>>;
    copyrightLine: z.ZodOptional<z.ZodNullable<z.ZodObject<{
        year: z.ZodString;
        text: z.ZodString;
    }, "strict", z.ZodTypeAny, {
        year: string;
        text: string;
    }, {
        year: string;
        text: string;
    }>>>;
    producerCopyrightLine: z.ZodOptional<z.ZodNullable<z.ZodObject<{
        year: z.ZodString;
        text: z.ZodString;
    }, "strict", z.ZodTypeAny, {
        year: string;
        text: string;
    }, {
        year: string;
        text: string;
    }>>>;
    parentalWarningType: z.ZodOptional<z.ZodNullable<z.ZodString>>;
}, "strict", z.ZodTypeAny, {
    genre: Genre;
    albumName: string;
    description?: string | undefined;
    license?: string | undefined;
    mood?: Mood | undefined;
    releaseDate?: Date | undefined;
    ddexReleaseIds?: Record<string, string> | null | undefined;
    tags?: string | undefined;
    upc?: string | undefined;
    artists?: {
        name: string;
        roles: string[];
        sequence_number: number;
    }[] | null | undefined;
    copyrightLine?: {
        year: string;
        text: string;
    } | null | undefined;
    producerCopyrightLine?: {
        year: string;
        text: string;
    } | null | undefined;
    parentalWarningType?: string | null | undefined;
}, {
    genre: Genre;
    albumName: string;
    description?: string | undefined;
    license?: string | undefined;
    mood?: Mood | undefined;
    releaseDate?: Date | undefined;
    ddexReleaseIds?: Record<string, string> | null | undefined;
    tags?: string | undefined;
    upc?: string | undefined;
    artists?: {
        name: string;
        roles: string[];
        sequence_number: number;
    }[] | null | undefined;
    copyrightLine?: {
        year: string;
        text: string;
    } | null | undefined;
    producerCopyrightLine?: {
        year: string;
        text: string;
    } | null | undefined;
    parentalWarningType?: string | null | undefined;
}>;
export declare type AlbumMetadata = z.input<ReturnType<typeof createUploadAlbumMetadataSchema>>;
export declare const createUploadAlbumSchema: () => z.ZodObject<{
    userId: z.ZodEffects<z.ZodString, number, string>;
    coverArtFile: z.ZodEffects<z.ZodUnion<[z.ZodObject<{
        buffer: z.ZodType<Buffer, z.ZodTypeDef, Buffer>;
        name: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        buffer: Buffer;
        name?: string | undefined;
    }, {
        buffer: Buffer;
        name?: string | undefined;
    }>, z.ZodType<File, z.ZodTypeDef, File>]>, File | {
        buffer: Buffer;
        name?: string | undefined;
    }, File | {
        buffer: Buffer;
        name?: string | undefined;
    }>;
    metadata: z.ZodObject<{
        albumName: z.ZodString;
        description: z.ZodOptional<z.ZodString>;
        genre: z.ZodEnum<[Genre, ...Genre[]]>;
        license: z.ZodOptional<z.ZodString>;
        mood: z.ZodOptional<z.ZodEnum<[Mood, ...Mood[]]>>;
        releaseDate: z.ZodOptional<z.ZodDate>;
        ddexReleaseIds: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>>;
        tags: z.ZodOptional<z.ZodString>;
        upc: z.ZodOptional<z.ZodString>;
        artists: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
            name: z.ZodString;
            roles: z.ZodArray<z.ZodString, "many">;
            sequence_number: z.ZodNumber;
        }, "strict", z.ZodTypeAny, {
            name: string;
            roles: string[];
            sequence_number: number;
        }, {
            name: string;
            roles: string[];
            sequence_number: number;
        }>, "many">>>;
        copyrightLine: z.ZodOptional<z.ZodNullable<z.ZodObject<{
            year: z.ZodString;
            text: z.ZodString;
        }, "strict", z.ZodTypeAny, {
            year: string;
            text: string;
        }, {
            year: string;
            text: string;
        }>>>;
        producerCopyrightLine: z.ZodOptional<z.ZodNullable<z.ZodObject<{
            year: z.ZodString;
            text: z.ZodString;
        }, "strict", z.ZodTypeAny, {
            year: string;
            text: string;
        }, {
            year: string;
            text: string;
        }>>>;
        parentalWarningType: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, "strict", z.ZodTypeAny, {
        genre: Genre;
        albumName: string;
        description?: string | undefined;
        license?: string | undefined;
        mood?: Mood | undefined;
        releaseDate?: Date | undefined;
        ddexReleaseIds?: Record<string, string> | null | undefined;
        tags?: string | undefined;
        upc?: string | undefined;
        artists?: {
            name: string;
            roles: string[];
            sequence_number: number;
        }[] | null | undefined;
        copyrightLine?: {
            year: string;
            text: string;
        } | null | undefined;
        producerCopyrightLine?: {
            year: string;
            text: string;
        } | null | undefined;
        parentalWarningType?: string | null | undefined;
    }, {
        genre: Genre;
        albumName: string;
        description?: string | undefined;
        license?: string | undefined;
        mood?: Mood | undefined;
        releaseDate?: Date | undefined;
        ddexReleaseIds?: Record<string, string> | null | undefined;
        tags?: string | undefined;
        upc?: string | undefined;
        artists?: {
            name: string;
            roles: string[];
            sequence_number: number;
        }[] | null | undefined;
        copyrightLine?: {
            year: string;
            text: string;
        } | null | undefined;
        producerCopyrightLine?: {
            year: string;
            text: string;
        } | null | undefined;
        parentalWarningType?: string | null | undefined;
    }>;
    onProgress: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodNumber], z.ZodUnknown>, z.ZodUnknown>>;
    /**
     * Track metadata is populated from the album if fields are missing
     */
    trackMetadatas: z.ZodArray<z.ZodObject<{
        isrc: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        iswc: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        description: z.ZodOptional<z.ZodString>;
        genre: z.ZodOptional<z.ZodEffects<z.ZodNullable<z.ZodEnum<[Genre, ...Genre[]]>>, Genre | null, Genre | null>>;
        license: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        mood: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodEnum<[Mood, ...Mood[]]>>>>;
        tags: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        title: z.ZodString;
        artists: z.ZodNullable<z.ZodOptional<z.ZodArray<z.ZodObject<{
            name: z.ZodString;
            roles: z.ZodArray<z.ZodString, "many">;
            sequence_number: z.ZodNumber;
        }, "strict", z.ZodTypeAny, {
            name: string;
            roles: string[];
            sequence_number: number;
        }, {
            name: string;
            roles: string[];
            sequence_number: number;
        }>, "many">>>;
        aiAttributionUserId: z.ZodOptional<z.ZodEffects<z.ZodString, number, string>>;
        fieldVisibility: z.ZodOptional<z.ZodObject<{
            mood: z.ZodOptional<z.ZodBoolean>;
            tags: z.ZodOptional<z.ZodBoolean>;
            genre: z.ZodOptional<z.ZodBoolean>; /**
             * Track metadata is populated from the album if fields are missing
             */
            share: z.ZodOptional<z.ZodBoolean>;
            playCount: z.ZodOptional<z.ZodBoolean>;
            remixes: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            mood?: boolean | undefined;
            tags?: boolean | undefined;
            genre?: boolean | undefined;
            share?: boolean | undefined;
            playCount?: boolean | undefined;
            remixes?: boolean | undefined;
        }, {
            mood?: boolean | undefined;
            tags?: boolean | undefined;
            genre?: boolean | undefined;
            share?: boolean | undefined;
            playCount?: boolean | undefined;
            remixes?: boolean | undefined;
        }>>;
        isUnlisted: z.ZodOptional<z.ZodBoolean>;
        isStreamGated: z.ZodOptional<z.ZodBoolean>;
        streamConditions: z.ZodNullable<z.ZodOptional<z.ZodUnion<[z.ZodObject<{
            nftCollection: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
                chain: z.ZodLiteral<"eth">;
                address: z.ZodString;
                standard: z.ZodUnion<[z.ZodLiteral<"ERC721">, z.ZodLiteral<"ERC1155">]>;
                name: z.ZodString;
                slug: z.ZodString;
                imageUrl: z.ZodOptional<z.ZodString>;
                externalLink: z.ZodNullable<z.ZodOptional<z.ZodString>>;
            }, "strict", z.ZodTypeAny, {
                address: string;
                name: string;
                chain: "eth";
                standard: "ERC721" | "ERC1155";
                slug: string;
                imageUrl?: string | undefined;
                externalLink?: string | null | undefined;
            }, {
                address: string;
                name: string;
                chain: "eth";
                standard: "ERC721" | "ERC1155";
                slug: string;
                imageUrl?: string | undefined;
                externalLink?: string | null | undefined;
            }>, z.ZodObject<{
                chain: z.ZodLiteral<"sol">;
                address: z.ZodString;
                name: z.ZodString;
                imageUrl: z.ZodOptional<z.ZodString>;
                externalLink: z.ZodNullable<z.ZodOptional<z.ZodString>>;
            }, "strict", z.ZodTypeAny, {
                address: string;
                name: string;
                chain: "sol";
                imageUrl?: string | undefined;
                externalLink?: string | null | undefined;
            }, {
                address: string;
                name: string;
                chain: "sol";
                imageUrl?: string | undefined;
                externalLink?: string | null | undefined;
            }>]>>;
        }, "strict", z.ZodTypeAny, {
            nftCollection?: {
                address: string;
                name: string;
                chain: "eth";
                standard: "ERC721" | "ERC1155";
                slug: string;
                imageUrl?: string | undefined;
                externalLink?: string | null | undefined;
            } | {
                address: string;
                name: string;
                chain: "sol";
                imageUrl?: string | undefined;
                externalLink?: string | null | undefined;
            } | undefined;
        }, {
            nftCollection?: {
                address: string;
                name: string;
                chain: "eth";
                standard: "ERC721" | "ERC1155";
                slug: string;
                imageUrl?: string | undefined;
                externalLink?: string | null | undefined;
            } | {
                address: string;
                name: string;
                chain: "sol";
                imageUrl?: string | undefined;
                externalLink?: string | null | undefined;
            } | undefined;
        }>, z.ZodObject<{
            followUserId: z.ZodEffects<z.ZodString, number, string>;
        }, "strict", z.ZodTypeAny, {
            followUserId: number;
        }, {
            followUserId: string;
        }>, z.ZodObject<{
            tipUserId: z.ZodEffects<z.ZodString, number, string>;
        }, "strict", z.ZodTypeAny, {
            tipUserId: number;
        }, {
            tipUserId: string;
        }>, z.ZodObject<{
            usdcPurchase: z.ZodObject<{
                price: z.ZodNumber;
                splits: z.ZodAny;
            }, "strip", z.ZodTypeAny, {
                price: number;
                splits?: any;
            }, {
                price: number;
                splits?: any;
            }>;
        }, "strict", z.ZodTypeAny, {
            usdcPurchase: {
                price: number;
                splits?: any;
            };
        }, {
            usdcPurchase: {
                price: number;
                splits?: any;
            };
        }>]>>>;
        isDownloadGated: z.ZodOptional<z.ZodBoolean>;
        downloadConditions: z.ZodNullable<z.ZodOptional<z.ZodUnion<[z.ZodObject<{
            nftCollection: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
                chain: z.ZodLiteral<"eth">;
                address: z.ZodString;
                standard: z.ZodUnion<[z.ZodLiteral<"ERC721">, z.ZodLiteral<"ERC1155">]>;
                name: z.ZodString;
                slug: z.ZodString;
                imageUrl: z.ZodOptional<z.ZodString>;
                externalLink: z.ZodNullable<z.ZodOptional<z.ZodString>>;
            }, "strict", z.ZodTypeAny, {
                address: string;
                name: string;
                chain: "eth";
                standard: "ERC721" | "ERC1155";
                slug: string;
                imageUrl?: string | undefined;
                externalLink?: string | null | undefined;
            }, {
                address: string;
                name: string;
                chain: "eth";
                standard: "ERC721" | "ERC1155";
                slug: string;
                imageUrl?: string | undefined;
                externalLink?: string | null | undefined;
            }>, z.ZodObject<{
                chain: z.ZodLiteral<"sol">;
                address: z.ZodString;
                name: z.ZodString;
                imageUrl: z.ZodOptional<z.ZodString>;
                externalLink: z.ZodNullable<z.ZodOptional<z.ZodString>>;
            }, "strict", z.ZodTypeAny, {
                address: string;
                name: string;
                chain: "sol";
                imageUrl?: string | undefined;
                externalLink?: string | null | undefined;
            }, {
                address: string;
                name: string;
                chain: "sol";
                imageUrl?: string | undefined;
                externalLink?: string | null | undefined;
            }>]>>;
        }, "strict", z.ZodTypeAny, {
            nftCollection?: {
                address: string;
                name: string;
                chain: "eth";
                standard: "ERC721" | "ERC1155";
                slug: string;
                imageUrl?: string | undefined;
                externalLink?: string | null | undefined;
            } | {
                address: string;
                name: string;
                chain: "sol";
                imageUrl?: string | undefined;
                externalLink?: string | null | undefined;
            } | undefined;
        }, {
            nftCollection?: {
                address: string;
                name: string;
                chain: "eth";
                standard: "ERC721" | "ERC1155";
                slug: string;
                imageUrl?: string | undefined;
                externalLink?: string | null | undefined;
            } | {
                address: string;
                name: string;
                chain: "sol";
                imageUrl?: string | undefined;
                externalLink?: string | null | undefined;
            } | undefined;
        }>, z.ZodObject<{
            followUserId: z.ZodEffects<z.ZodString, number, string>;
        }, "strict", z.ZodTypeAny, {
            followUserId: number;
        }, {
            followUserId: string;
        }>, z.ZodObject<{
            tipUserId: z.ZodEffects<z.ZodString, number, string>;
        }, "strict", z.ZodTypeAny, {
            tipUserId: number;
        }, {
            tipUserId: string;
        }>, z.ZodObject<{
            usdcPurchase: z.ZodObject<{
                price: z.ZodNumber;
                splits: z.ZodAny;
            }, "strip", z.ZodTypeAny, {
                price: number;
                splits?: any;
            }, {
                price: number;
                splits?: any;
            }>;
        }, "strict", z.ZodTypeAny, {
            usdcPurchase: {
                price: number;
                splits?: any;
            };
        }, {
            usdcPurchase: {
                price: number;
                splits?: any;
            };
        }>]>>>;
        releaseDate: z.ZodOptional<z.ZodDate>;
        remixOf: z.ZodOptional<z.ZodObject<{
            tracks: z.ZodArray<z.ZodObject<{
                parentTrackId: z.ZodEffects<z.ZodString, number, string>;
            }, "strip", z.ZodTypeAny, {
                parentTrackId: number;
            }, {
                parentTrackId: string;
            }>, "many">;
        }, "strict", z.ZodTypeAny, {
            tracks: {
                parentTrackId: number;
            }[];
        }, {
            tracks: {
                parentTrackId: string;
            }[];
        }>>;
        previewStartSeconds: z.ZodOptional<z.ZodNumber>;
        audioUploadId: z.ZodOptional<z.ZodString>;
        previewCid: z.ZodOptional<z.ZodString>;
        origFileCid: z.ZodOptional<z.ZodString>;
        origFilename: z.ZodOptional<z.ZodString>;
        isDownloadable: z.ZodOptional<z.ZodString>;
        isOriginalAvailable: z.ZodOptional<z.ZodString>;
        ddexReleaseIds: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>>;
        resourceContributors: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
            name: z.ZodString;
            roles: z.ZodArray<z.ZodString, "many">;
            sequence_number: z.ZodNumber;
        }, "strict", z.ZodTypeAny, {
            name: string;
            roles: string[];
            sequence_number: number;
        }, {
            name: string;
            roles: string[];
            sequence_number: number;
        }>, "many">>>;
        indirectResourceContributors: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
            name: z.ZodString;
            roles: z.ZodArray<z.ZodString, "many">;
            sequence_number: z.ZodNumber;
        }, "strict", z.ZodTypeAny, {
            name: string;
            roles: string[];
            sequence_number: number;
        }, {
            name: string;
            roles: string[];
            sequence_number: number;
        }>, "many">>>;
        rightsController: z.ZodOptional<z.ZodNullable<z.ZodObject<{
            name: z.ZodString;
            roles: z.ZodArray<z.ZodString, "many">;
            rights_share_unknown: z.ZodOptional<z.ZodString>;
        }, "strict", z.ZodTypeAny, {
            name: string;
            roles: string[];
            rights_share_unknown?: string | undefined;
        }, {
            name: string;
            roles: string[];
            rights_share_unknown?: string | undefined;
        }>>>;
        copyrightLine: z.ZodOptional<z.ZodNullable<z.ZodObject<{
            year: z.ZodString;
            text: z.ZodString;
        }, "strict", z.ZodTypeAny, {
            year: string;
            text: string;
        }, {
            year: string;
            text: string;
        }>>>;
        producerCopyrightLine: z.ZodOptional<z.ZodNullable<z.ZodObject<{
            year: z.ZodString;
            text: z.ZodString;
        }, "strict", z.ZodTypeAny, {
            year: string;
            text: string;
        }, {
            year: string;
            text: string;
        }>>>;
        parentalWarningType: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, "strip", z.ZodTypeAny, {
        title: string;
        isrc?: string | null | undefined;
        iswc?: string | null | undefined;
        description?: string | undefined;
        genre?: Genre | null | undefined;
        license?: string | null | undefined;
        mood?: Mood | null | undefined;
        tags?: string | undefined;
        artists?: {
            name: string;
            roles: string[];
            sequence_number: number;
        }[] | null | undefined;
        aiAttributionUserId?: number | undefined;
        fieldVisibility?: {
            mood?: boolean | undefined;
            tags?: boolean | undefined;
            genre?: boolean | undefined;
            share?: boolean | undefined;
            playCount?: boolean | undefined;
            remixes?: boolean | undefined;
        } | undefined;
        isUnlisted?: boolean | undefined;
        isStreamGated?: boolean | undefined;
        streamConditions?: {
            nftCollection?: {
                address: string;
                name: string;
                chain: "eth";
                standard: "ERC721" | "ERC1155";
                slug: string;
                imageUrl?: string | undefined;
                externalLink?: string | null | undefined;
            } | {
                address: string;
                name: string;
                chain: "sol";
                imageUrl?: string | undefined;
                externalLink?: string | null | undefined;
            } | undefined;
        } | {
            followUserId: number;
        } | {
            tipUserId: number;
        } | {
            usdcPurchase: {
                price: number;
                splits?: any;
            };
        } | null | undefined;
        isDownloadGated?: boolean | undefined;
        downloadConditions?: {
            nftCollection?: {
                address: string;
                name: string;
                chain: "eth";
                standard: "ERC721" | "ERC1155";
                slug: string;
                imageUrl?: string | undefined;
                externalLink?: string | null | undefined;
            } | {
                address: string;
                name: string;
                chain: "sol";
                imageUrl?: string | undefined;
                externalLink?: string | null | undefined;
            } | undefined;
        } | {
            followUserId: number;
        } | {
            tipUserId: number;
        } | {
            usdcPurchase: {
                price: number;
                splits?: any;
            };
        } | null | undefined;
        releaseDate?: Date | undefined;
        remixOf?: {
            tracks: {
                parentTrackId: number;
            }[];
        } | undefined;
        previewStartSeconds?: number | undefined;
        audioUploadId?: string | undefined;
        previewCid?: string | undefined;
        origFileCid?: string | undefined;
        origFilename?: string | undefined;
        isDownloadable?: string | undefined;
        isOriginalAvailable?: string | undefined;
        ddexReleaseIds?: Record<string, string> | null | undefined;
        resourceContributors?: {
            name: string;
            roles: string[];
            sequence_number: number;
        }[] | null | undefined;
        indirectResourceContributors?: {
            name: string;
            roles: string[];
            sequence_number: number;
        }[] | null | undefined;
        rightsController?: {
            name: string;
            roles: string[];
            rights_share_unknown?: string | undefined;
        } | null | undefined;
        copyrightLine?: {
            year: string;
            text: string;
        } | null | undefined;
        producerCopyrightLine?: {
            year: string;
            text: string;
        } | null | undefined;
        parentalWarningType?: string | null | undefined;
    }, {
        title: string;
        isrc?: string | null | undefined;
        iswc?: string | null | undefined;
        description?: string | undefined;
        genre?: Genre | null | undefined;
        license?: string | null | undefined;
        mood?: Mood | null | undefined;
        tags?: string | undefined;
        artists?: {
            name: string;
            roles: string[];
            sequence_number: number;
        }[] | null | undefined;
        aiAttributionUserId?: string | undefined;
        fieldVisibility?: {
            mood?: boolean | undefined;
            tags?: boolean | undefined;
            genre?: boolean | undefined;
            share?: boolean | undefined;
            playCount?: boolean | undefined;
            remixes?: boolean | undefined;
        } | undefined;
        isUnlisted?: boolean | undefined;
        isStreamGated?: boolean | undefined;
        streamConditions?: {
            nftCollection?: {
                address: string;
                name: string;
                chain: "eth";
                standard: "ERC721" | "ERC1155";
                slug: string;
                imageUrl?: string | undefined;
                externalLink?: string | null | undefined;
            } | {
                address: string;
                name: string;
                chain: "sol";
                imageUrl?: string | undefined;
                externalLink?: string | null | undefined;
            } | undefined;
        } | {
            followUserId: string;
        } | {
            tipUserId: string;
        } | {
            usdcPurchase: {
                price: number;
                splits?: any;
            };
        } | null | undefined;
        isDownloadGated?: boolean | undefined;
        downloadConditions?: {
            nftCollection?: {
                address: string;
                name: string;
                chain: "eth";
                standard: "ERC721" | "ERC1155";
                slug: string;
                imageUrl?: string | undefined;
                externalLink?: string | null | undefined;
            } | {
                address: string;
                name: string;
                chain: "sol";
                imageUrl?: string | undefined;
                externalLink?: string | null | undefined;
            } | undefined;
        } | {
            followUserId: string;
        } | {
            tipUserId: string;
        } | {
            usdcPurchase: {
                price: number;
                splits?: any;
            };
        } | null | undefined;
        releaseDate?: Date | undefined;
        remixOf?: {
            tracks: {
                parentTrackId: string;
            }[];
        } | undefined;
        previewStartSeconds?: number | undefined;
        audioUploadId?: string | undefined;
        previewCid?: string | undefined;
        origFileCid?: string | undefined;
        origFilename?: string | undefined;
        isDownloadable?: string | undefined;
        isOriginalAvailable?: string | undefined;
        ddexReleaseIds?: Record<string, string> | null | undefined;
        resourceContributors?: {
            name: string;
            roles: string[];
            sequence_number: number;
        }[] | null | undefined;
        indirectResourceContributors?: {
            name: string;
            roles: string[];
            sequence_number: number;
        }[] | null | undefined;
        rightsController?: {
            name: string;
            roles: string[];
            rights_share_unknown?: string | undefined;
        } | null | undefined;
        copyrightLine?: {
            year: string;
            text: string;
        } | null | undefined;
        producerCopyrightLine?: {
            year: string;
            text: string;
        } | null | undefined;
        parentalWarningType?: string | null | undefined;
    }>, "many">;
    trackFiles: z.ZodArray<z.ZodEffects<z.ZodUnion<[z.ZodObject<{
        buffer: z.ZodType<Buffer, z.ZodTypeDef, Buffer>;
        name: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        buffer: Buffer;
        name?: string | undefined;
    }, {
        buffer: Buffer;
        name?: string | undefined;
    }>, z.ZodType<File, z.ZodTypeDef, File>]>, File | {
        buffer: Buffer;
        name?: string | undefined;
    }, File | {
        buffer: Buffer;
        name?: string | undefined;
    }>, "many">;
}, "strict", z.ZodTypeAny, {
    userId: number;
    metadata: {
        genre: Genre;
        albumName: string;
        description?: string | undefined;
        license?: string | undefined;
        mood?: Mood | undefined;
        releaseDate?: Date | undefined;
        ddexReleaseIds?: Record<string, string> | null | undefined;
        tags?: string | undefined;
        upc?: string | undefined;
        artists?: {
            name: string;
            roles: string[];
            sequence_number: number;
        }[] | null | undefined;
        copyrightLine?: {
            year: string;
            text: string;
        } | null | undefined;
        producerCopyrightLine?: {
            year: string;
            text: string;
        } | null | undefined;
        parentalWarningType?: string | null | undefined;
    };
    coverArtFile: (File | {
        buffer: Buffer;
        name?: string | undefined;
    }) & (File | {
        buffer: Buffer;
        name?: string | undefined;
    } | undefined);
    trackMetadatas: {
        title: string;
        isrc?: string | null | undefined;
        iswc?: string | null | undefined;
        description?: string | undefined;
        genre?: Genre | null | undefined;
        license?: string | null | undefined;
        mood?: Mood | null | undefined;
        tags?: string | undefined;
        artists?: {
            name: string;
            roles: string[];
            sequence_number: number;
        }[] | null | undefined;
        aiAttributionUserId?: number | undefined;
        fieldVisibility?: {
            mood?: boolean | undefined;
            tags?: boolean | undefined;
            genre?: boolean | undefined;
            share?: boolean | undefined;
            playCount?: boolean | undefined;
            remixes?: boolean | undefined;
        } | undefined;
        isUnlisted?: boolean | undefined;
        isStreamGated?: boolean | undefined;
        streamConditions?: {
            nftCollection?: {
                address: string;
                name: string;
                chain: "eth";
                standard: "ERC721" | "ERC1155";
                slug: string;
                imageUrl?: string | undefined;
                externalLink?: string | null | undefined;
            } | {
                address: string;
                name: string;
                chain: "sol";
                imageUrl?: string | undefined;
                externalLink?: string | null | undefined;
            } | undefined;
        } | {
            followUserId: number;
        } | {
            tipUserId: number;
        } | {
            usdcPurchase: {
                price: number;
                splits?: any;
            };
        } | null | undefined;
        isDownloadGated?: boolean | undefined;
        downloadConditions?: {
            nftCollection?: {
                address: string;
                name: string;
                chain: "eth";
                standard: "ERC721" | "ERC1155";
                slug: string;
                imageUrl?: string | undefined;
                externalLink?: string | null | undefined;
            } | {
                address: string;
                name: string;
                chain: "sol";
                imageUrl?: string | undefined;
                externalLink?: string | null | undefined;
            } | undefined;
        } | {
            followUserId: number;
        } | {
            tipUserId: number;
        } | {
            usdcPurchase: {
                price: number;
                splits?: any;
            };
        } | null | undefined;
        releaseDate?: Date | undefined;
        remixOf?: {
            tracks: {
                parentTrackId: number;
            }[];
        } | undefined;
        previewStartSeconds?: number | undefined;
        audioUploadId?: string | undefined;
        previewCid?: string | undefined;
        origFileCid?: string | undefined;
        origFilename?: string | undefined;
        isDownloadable?: string | undefined;
        isOriginalAvailable?: string | undefined;
        ddexReleaseIds?: Record<string, string> | null | undefined;
        resourceContributors?: {
            name: string;
            roles: string[];
            sequence_number: number;
        }[] | null | undefined;
        indirectResourceContributors?: {
            name: string;
            roles: string[];
            sequence_number: number;
        }[] | null | undefined;
        rightsController?: {
            name: string;
            roles: string[];
            rights_share_unknown?: string | undefined;
        } | null | undefined;
        copyrightLine?: {
            year: string;
            text: string;
        } | null | undefined;
        producerCopyrightLine?: {
            year: string;
            text: string;
        } | null | undefined;
        parentalWarningType?: string | null | undefined;
    }[];
    trackFiles: (File | {
        buffer: Buffer;
        name?: string | undefined;
    })[];
    onProgress?: ((args_0: number, ...args_1: unknown[]) => unknown) | undefined;
}, {
    userId: string;
    metadata: {
        genre: Genre;
        albumName: string;
        description?: string | undefined;
        license?: string | undefined;
        mood?: Mood | undefined;
        releaseDate?: Date | undefined;
        ddexReleaseIds?: Record<string, string> | null | undefined;
        tags?: string | undefined;
        upc?: string | undefined;
        artists?: {
            name: string;
            roles: string[];
            sequence_number: number;
        }[] | null | undefined;
        copyrightLine?: {
            year: string;
            text: string;
        } | null | undefined;
        producerCopyrightLine?: {
            year: string;
            text: string;
        } | null | undefined;
        parentalWarningType?: string | null | undefined;
    };
    coverArtFile: (File | {
        buffer: Buffer;
        name?: string | undefined;
    }) & (File | {
        buffer: Buffer;
        name?: string | undefined;
    } | undefined);
    trackMetadatas: {
        title: string;
        isrc?: string | null | undefined;
        iswc?: string | null | undefined;
        description?: string | undefined;
        genre?: Genre | null | undefined;
        license?: string | null | undefined;
        mood?: Mood | null | undefined;
        tags?: string | undefined;
        artists?: {
            name: string;
            roles: string[];
            sequence_number: number;
        }[] | null | undefined;
        aiAttributionUserId?: string | undefined;
        fieldVisibility?: {
            mood?: boolean | undefined;
            tags?: boolean | undefined;
            genre?: boolean | undefined;
            share?: boolean | undefined;
            playCount?: boolean | undefined;
            remixes?: boolean | undefined;
        } | undefined;
        isUnlisted?: boolean | undefined;
        isStreamGated?: boolean | undefined;
        streamConditions?: {
            nftCollection?: {
                address: string;
                name: string;
                chain: "eth";
                standard: "ERC721" | "ERC1155";
                slug: string;
                imageUrl?: string | undefined;
                externalLink?: string | null | undefined;
            } | {
                address: string;
                name: string;
                chain: "sol";
                imageUrl?: string | undefined;
                externalLink?: string | null | undefined;
            } | undefined;
        } | {
            followUserId: string;
        } | {
            tipUserId: string;
        } | {
            usdcPurchase: {
                price: number;
                splits?: any;
            };
        } | null | undefined;
        isDownloadGated?: boolean | undefined;
        downloadConditions?: {
            nftCollection?: {
                address: string;
                name: string;
                chain: "eth";
                standard: "ERC721" | "ERC1155";
                slug: string;
                imageUrl?: string | undefined;
                externalLink?: string | null | undefined;
            } | {
                address: string;
                name: string;
                chain: "sol";
                imageUrl?: string | undefined;
                externalLink?: string | null | undefined;
            } | undefined;
        } | {
            followUserId: string;
        } | {
            tipUserId: string;
        } | {
            usdcPurchase: {
                price: number;
                splits?: any;
            };
        } | null | undefined;
        releaseDate?: Date | undefined;
        remixOf?: {
            tracks: {
                parentTrackId: string;
            }[];
        } | undefined;
        previewStartSeconds?: number | undefined;
        audioUploadId?: string | undefined;
        previewCid?: string | undefined;
        origFileCid?: string | undefined;
        origFilename?: string | undefined;
        isDownloadable?: string | undefined;
        isOriginalAvailable?: string | undefined;
        ddexReleaseIds?: Record<string, string> | null | undefined;
        resourceContributors?: {
            name: string;
            roles: string[];
            sequence_number: number;
        }[] | null | undefined;
        indirectResourceContributors?: {
            name: string;
            roles: string[];
            sequence_number: number;
        }[] | null | undefined;
        rightsController?: {
            name: string;
            roles: string[];
            rights_share_unknown?: string | undefined;
        } | null | undefined;
        copyrightLine?: {
            year: string;
            text: string;
        } | null | undefined;
        producerCopyrightLine?: {
            year: string;
            text: string;
        } | null | undefined;
        parentalWarningType?: string | null | undefined;
    }[];
    trackFiles: (File | {
        buffer: Buffer;
        name?: string | undefined;
    })[];
    onProgress?: ((args_0: number, ...args_1: unknown[]) => unknown) | undefined;
}>;
export declare type UploadAlbumRequest = z.input<ReturnType<typeof createUploadAlbumSchema>>;
export declare const createUpdateAlbumSchema: () => z.ZodObject<{
    userId: z.ZodEffects<z.ZodString, number, string>;
    albumId: z.ZodEffects<z.ZodString, number, string>;
    coverArtFile: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodObject<{
        buffer: z.ZodType<Buffer, z.ZodTypeDef, Buffer>;
        name: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        buffer: Buffer;
        name?: string | undefined;
    }, {
        buffer: Buffer;
        name?: string | undefined;
    }>, z.ZodType<File, z.ZodTypeDef, File>]>, File | {
        buffer: Buffer;
        name?: string | undefined;
    }, File | {
        buffer: Buffer;
        name?: string | undefined;
    }>>;
    metadata: z.ZodObject<{
        albumName: z.ZodOptional<z.ZodString>;
        description: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        genre: z.ZodOptional<z.ZodEnum<[Genre, ...Genre[]]>>;
        license: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        mood: z.ZodOptional<z.ZodOptional<z.ZodEnum<[Mood, ...Mood[]]>>>;
        releaseDate: z.ZodOptional<z.ZodOptional<z.ZodDate>>;
        ddexReleaseIds: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>>>;
        tags: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        upc: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        artists: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
            name: z.ZodString;
            roles: z.ZodArray<z.ZodString, "many">;
            sequence_number: z.ZodNumber;
        }, "strict", z.ZodTypeAny, {
            name: string;
            roles: string[];
            sequence_number: number;
        }, {
            name: string;
            roles: string[];
            sequence_number: number;
        }>, "many">>>>;
        copyrightLine: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodObject<{
            year: z.ZodString;
            text: z.ZodString;
        }, "strict", z.ZodTypeAny, {
            year: string;
            text: string;
        }, {
            year: string;
            text: string;
        }>>>>;
        producerCopyrightLine: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodObject<{
            year: z.ZodString;
            text: z.ZodString;
        }, "strict", z.ZodTypeAny, {
            year: string;
            text: string;
        }, {
            year: string;
            text: string;
        }>>>>;
        parentalWarningType: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
    }, "strict", z.ZodTypeAny, {
        albumName?: string | undefined;
        description?: string | undefined;
        genre?: Genre | undefined;
        license?: string | undefined;
        mood?: Mood | undefined;
        releaseDate?: Date | undefined;
        ddexReleaseIds?: Record<string, string> | null | undefined;
        tags?: string | undefined;
        upc?: string | undefined;
        artists?: {
            name: string;
            roles: string[];
            sequence_number: number;
        }[] | null | undefined;
        copyrightLine?: {
            year: string;
            text: string;
        } | null | undefined;
        producerCopyrightLine?: {
            year: string;
            text: string;
        } | null | undefined;
        parentalWarningType?: string | null | undefined;
    }, {
        albumName?: string | undefined;
        description?: string | undefined;
        genre?: Genre | undefined;
        license?: string | undefined;
        mood?: Mood | undefined;
        releaseDate?: Date | undefined;
        ddexReleaseIds?: Record<string, string> | null | undefined;
        tags?: string | undefined;
        upc?: string | undefined;
        artists?: {
            name: string;
            roles: string[];
            sequence_number: number;
        }[] | null | undefined;
        copyrightLine?: {
            year: string;
            text: string;
        } | null | undefined;
        producerCopyrightLine?: {
            year: string;
            text: string;
        } | null | undefined;
        parentalWarningType?: string | null | undefined;
    }>;
    onProgress: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodNumber], z.ZodUnknown>, z.ZodUnknown>>;
}, "strict", z.ZodTypeAny, {
    userId: number;
    metadata: {
        albumName?: string | undefined;
        description?: string | undefined;
        genre?: Genre | undefined;
        license?: string | undefined;
        mood?: Mood | undefined;
        releaseDate?: Date | undefined;
        ddexReleaseIds?: Record<string, string> | null | undefined;
        tags?: string | undefined;
        upc?: string | undefined;
        artists?: {
            name: string;
            roles: string[];
            sequence_number: number;
        }[] | null | undefined;
        copyrightLine?: {
            year: string;
            text: string;
        } | null | undefined;
        producerCopyrightLine?: {
            year: string;
            text: string;
        } | null | undefined;
        parentalWarningType?: string | null | undefined;
    };
    albumId: number;
    coverArtFile?: File | {
        buffer: Buffer;
        name?: string | undefined;
    } | undefined;
    onProgress?: ((args_0: number, ...args_1: unknown[]) => unknown) | undefined;
}, {
    userId: string;
    metadata: {
        albumName?: string | undefined;
        description?: string | undefined;
        genre?: Genre | undefined;
        license?: string | undefined;
        mood?: Mood | undefined;
        releaseDate?: Date | undefined;
        ddexReleaseIds?: Record<string, string> | null | undefined;
        tags?: string | undefined;
        upc?: string | undefined;
        artists?: {
            name: string;
            roles: string[];
            sequence_number: number;
        }[] | null | undefined;
        copyrightLine?: {
            year: string;
            text: string;
        } | null | undefined;
        producerCopyrightLine?: {
            year: string;
            text: string;
        } | null | undefined;
        parentalWarningType?: string | null | undefined;
    };
    albumId: string;
    coverArtFile?: File | {
        buffer: Buffer;
        name?: string | undefined;
    } | undefined;
    onProgress?: ((args_0: number, ...args_1: unknown[]) => unknown) | undefined;
}>;
export declare type UpdateAlbumRequest = z.input<ReturnType<typeof createUpdateAlbumSchema>>;
export declare const DeleteAlbumSchema: z.ZodObject<{
    userId: z.ZodEffects<z.ZodString, number, string>;
    albumId: z.ZodEffects<z.ZodString, number, string>;
}, "strict", z.ZodTypeAny, {
    userId: number;
    albumId: number;
}, {
    userId: string;
    albumId: string;
}>;
export declare type DeleteAlbumRequest = z.input<typeof DeleteAlbumSchema>;
export declare const FavoriteAlbumSchema: z.ZodObject<{
    userId: z.ZodEffects<z.ZodString, number, string>;
    albumId: z.ZodEffects<z.ZodString, number, string>;
    metadata: z.ZodOptional<z.ZodObject<{
        /**
         * Is this a save of a repost? Used to dispatch notifications
         * when a user favorites another user's repost
         */
        isSaveOfRepost: z.ZodBoolean;
    }, "strip", z.ZodTypeAny, {
        isSaveOfRepost: boolean;
    }, {
        isSaveOfRepost: boolean;
    }>>;
}, "strict", z.ZodTypeAny, {
    userId: number;
    albumId: number;
    metadata?: {
        isSaveOfRepost: boolean;
    } | undefined;
}, {
    userId: string;
    albumId: string;
    metadata?: {
        isSaveOfRepost: boolean;
    } | undefined;
}>;
export declare type FavoriteAlbumRequest = z.input<typeof FavoriteAlbumSchema>;
export declare const UnfavoriteAlbumSchema: z.ZodObject<{
    userId: z.ZodEffects<z.ZodString, number, string>;
    albumId: z.ZodEffects<z.ZodString, number, string>;
}, "strict", z.ZodTypeAny, {
    userId: number;
    albumId: number;
}, {
    userId: string;
    albumId: string;
}>;
export declare type UnfavoriteAlbumRequest = z.input<typeof UnfavoriteAlbumSchema>;
export declare const RepostAlbumSchema: z.ZodObject<{
    userId: z.ZodEffects<z.ZodString, number, string>;
    albumId: z.ZodEffects<z.ZodString, number, string>;
    metadata: z.ZodOptional<z.ZodObject<{
        /**
         * Is this a repost of a repost? Used to dispatch notifications
         * when a user favorites another user's repost
         */
        isRepostOfRepost: z.ZodBoolean;
    }, "strip", z.ZodTypeAny, {
        isRepostOfRepost: boolean;
    }, {
        isRepostOfRepost: boolean;
    }>>;
}, "strict", z.ZodTypeAny, {
    userId: number;
    albumId: number;
    metadata?: {
        isRepostOfRepost: boolean;
    } | undefined;
}, {
    userId: string;
    albumId: string;
    metadata?: {
        isRepostOfRepost: boolean;
    } | undefined;
}>;
export declare type RepostAlbumRequest = z.input<typeof RepostAlbumSchema>;
export declare const UnrepostAlbumSchema: z.ZodObject<{
    userId: z.ZodEffects<z.ZodString, number, string>;
    albumId: z.ZodEffects<z.ZodString, number, string>;
}, "strict", z.ZodTypeAny, {
    userId: number;
    albumId: number;
}, {
    userId: string;
    albumId: string;
}>;
export declare type UnrepostAlbumRequest = z.input<typeof UnrepostAlbumSchema>;
