/// <reference types="node" />
import { z } from 'zod';
import { Genre } from '../../types/Genre';
import { Mood } from '../../types/Mood';
export declare const PremiumConditionsEthNFTCollection: 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.ZodOptional<z.ZodString>;
}, "strict", z.ZodTypeAny, {
    address: string;
    name: string;
    chain: "eth";
    standard: "ERC721" | "ERC1155";
    slug: string;
    imageUrl?: string | undefined;
    externalLink?: string | undefined;
}, {
    address: string;
    name: string;
    chain: "eth";
    standard: "ERC721" | "ERC1155";
    slug: string;
    imageUrl?: string | undefined;
    externalLink?: string | undefined;
}>;
export declare const PremiumConditionsSolNFTCollection: z.ZodObject<{
    chain: z.ZodLiteral<"sol">;
    address: z.ZodString;
    name: z.ZodString;
    imageUrl: z.ZodOptional<z.ZodString>;
    externalLink: z.ZodOptional<z.ZodString>;
}, "strict", z.ZodTypeAny, {
    address: string;
    name: string;
    chain: "sol";
    imageUrl?: string | undefined;
    externalLink?: string | undefined;
}, {
    address: string;
    name: string;
    chain: "sol";
    imageUrl?: string | undefined;
    externalLink?: string | undefined;
}>;
export declare const PremiumConditionsNFTCollection: 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.ZodOptional<z.ZodString>;
}, "strict", z.ZodTypeAny, {
    address: string;
    name: string;
    chain: "eth";
    standard: "ERC721" | "ERC1155";
    slug: string;
    imageUrl?: string | undefined;
    externalLink?: string | undefined;
}, {
    address: string;
    name: string;
    chain: "eth";
    standard: "ERC721" | "ERC1155";
    slug: string;
    imageUrl?: string | undefined;
    externalLink?: string | undefined;
}>, z.ZodObject<{
    chain: z.ZodLiteral<"sol">;
    address: z.ZodString;
    name: z.ZodString;
    imageUrl: z.ZodOptional<z.ZodString>;
    externalLink: z.ZodOptional<z.ZodString>;
}, "strict", z.ZodTypeAny, {
    address: string;
    name: string;
    chain: "sol";
    imageUrl?: string | undefined;
    externalLink?: string | undefined;
}, {
    address: string;
    name: string;
    chain: "sol";
    imageUrl?: string | undefined;
    externalLink?: string | undefined;
}>]>;
export declare const PremiumConditionsFollowUserId: z.ZodObject<{
    followUserId: z.ZodEffects<z.ZodString, number, string>;
}, "strict", z.ZodTypeAny, {
    followUserId: number;
}, {
    followUserId: string;
}>;
export declare const PremiumConditionsTipUserId: z.ZodObject<{
    tipUserId: z.ZodEffects<z.ZodString, number, string>;
}, "strict", z.ZodTypeAny, {
    tipUserId: number;
}, {
    tipUserId: string;
}>;
export declare const createUploadTrackMetadataSchema: () => z.ZodObject<{
    aiAttributionUserId: z.ZodOptional<z.ZodEffects<z.ZodString, number, string>>;
    description: z.ZodOptional<z.ZodString>;
    download: z.ZodOptional<z.ZodNullable<z.ZodObject<{
        cid: z.ZodString;
        isDownloadable: z.ZodBoolean;
        requiresFollow: z.ZodBoolean;
    }, "strict", z.ZodTypeAny, {
        cid: string;
        isDownloadable: boolean;
        requiresFollow: boolean;
    }, {
        cid: string;
        isDownloadable: boolean;
        requiresFollow: boolean;
    }>>>;
    fieldVisibility: z.ZodOptional<z.ZodObject<{
        mood: z.ZodOptional<z.ZodBoolean>;
        tags: z.ZodOptional<z.ZodBoolean>;
        genre: z.ZodOptional<z.ZodBoolean>;
        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;
    }>>;
    genre: z.ZodEffects<z.ZodNullable<z.ZodEnum<[Genre, ...Genre[]]>>, Genre | null, Genre | null>;
    isPremium: z.ZodOptional<z.ZodBoolean>;
    isrc: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    isUnlisted: z.ZodOptional<z.ZodBoolean>;
    iswc: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    license: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    mood: z.ZodNullable<z.ZodOptional<z.ZodEnum<[Mood, ...Mood[]]>>>;
    premiumConditions: z.ZodOptional<z.ZodUnion<[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.ZodOptional<z.ZodString>;
    }, "strict", z.ZodTypeAny, {
        address: string;
        name: string;
        chain: "eth";
        standard: "ERC721" | "ERC1155";
        slug: string;
        imageUrl?: string | undefined;
        externalLink?: string | undefined;
    }, {
        address: string;
        name: string;
        chain: "eth";
        standard: "ERC721" | "ERC1155";
        slug: string;
        imageUrl?: string | undefined;
        externalLink?: string | undefined;
    }>, z.ZodObject<{
        chain: z.ZodLiteral<"sol">;
        address: z.ZodString;
        name: z.ZodString;
        imageUrl: z.ZodOptional<z.ZodString>;
        externalLink: z.ZodOptional<z.ZodString>;
    }, "strict", z.ZodTypeAny, {
        address: string;
        name: string;
        chain: "sol";
        imageUrl?: string | undefined;
        externalLink?: string | undefined;
    }, {
        address: string;
        name: string;
        chain: "sol";
        imageUrl?: string | undefined;
        externalLink?: string | 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;
    }>]>>;
    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;
        }[];
    }>>;
    tags: z.ZodOptional<z.ZodString>;
    title: z.ZodString;
    previewStartSeconds: z.ZodOptional<z.ZodNumber>;
    audioUploadId: z.ZodOptional<z.ZodString>;
    previewCid: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    genre: Genre | null;
    title: string;
    aiAttributionUserId?: number | undefined;
    description?: string | undefined;
    download?: {
        cid: string;
        isDownloadable: boolean;
        requiresFollow: boolean;
    } | null | undefined;
    fieldVisibility?: {
        mood?: boolean | undefined;
        tags?: boolean | undefined;
        genre?: boolean | undefined;
        share?: boolean | undefined;
        playCount?: boolean | undefined;
        remixes?: boolean | undefined;
    } | undefined;
    isPremium?: boolean | undefined;
    isrc?: string | null | undefined;
    isUnlisted?: boolean | undefined;
    iswc?: string | null | undefined;
    license?: string | null | undefined;
    mood?: Mood | null | undefined;
    premiumConditions?: {
        address: string;
        name: string;
        chain: "eth";
        standard: "ERC721" | "ERC1155";
        slug: string;
        imageUrl?: string | undefined;
        externalLink?: string | undefined;
    } | {
        address: string;
        name: string;
        chain: "sol";
        imageUrl?: string | undefined;
        externalLink?: string | undefined;
    } | {
        followUserId: number;
    } | {
        tipUserId: number;
    } | undefined;
    releaseDate?: Date | undefined;
    remixOf?: {
        tracks: {
            parentTrackId: number;
        }[];
    } | undefined;
    tags?: string | undefined;
    previewStartSeconds?: number | undefined;
    audioUploadId?: string | undefined;
    previewCid?: string | undefined;
}, {
    genre: Genre | null;
    title: string;
    aiAttributionUserId?: string | undefined;
    description?: string | undefined;
    download?: {
        cid: string;
        isDownloadable: boolean;
        requiresFollow: boolean;
    } | null | undefined;
    fieldVisibility?: {
        mood?: boolean | undefined;
        tags?: boolean | undefined;
        genre?: boolean | undefined;
        share?: boolean | undefined;
        playCount?: boolean | undefined;
        remixes?: boolean | undefined;
    } | undefined;
    isPremium?: boolean | undefined;
    isrc?: string | null | undefined;
    isUnlisted?: boolean | undefined;
    iswc?: string | null | undefined;
    license?: string | null | undefined;
    mood?: Mood | null | undefined;
    premiumConditions?: {
        address: string;
        name: string;
        chain: "eth";
        standard: "ERC721" | "ERC1155";
        slug: string;
        imageUrl?: string | undefined;
        externalLink?: string | undefined;
    } | {
        address: string;
        name: string;
        chain: "sol";
        imageUrl?: string | undefined;
        externalLink?: string | undefined;
    } | {
        followUserId: string;
    } | {
        tipUserId: string;
    } | undefined;
    releaseDate?: Date | undefined;
    remixOf?: {
        tracks: {
            parentTrackId: string;
        }[];
    } | undefined;
    tags?: string | undefined;
    previewStartSeconds?: number | undefined;
    audioUploadId?: string | undefined;
    previewCid?: string | undefined;
}>;
export type TrackMetadata = z.input<ReturnType<typeof createUploadTrackMetadataSchema>>;
export declare const createUploadTrackSchema: () => 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<{
        aiAttributionUserId: z.ZodOptional<z.ZodEffects<z.ZodString, number, string>>;
        description: z.ZodOptional<z.ZodString>;
        download: z.ZodOptional<z.ZodNullable<z.ZodObject<{
            cid: z.ZodString;
            isDownloadable: z.ZodBoolean;
            requiresFollow: z.ZodBoolean;
        }, "strict", z.ZodTypeAny, {
            cid: string;
            isDownloadable: boolean;
            requiresFollow: boolean;
        }, {
            cid: string;
            isDownloadable: boolean;
            requiresFollow: boolean;
        }>>>;
        fieldVisibility: z.ZodOptional<z.ZodObject<{
            mood: z.ZodOptional<z.ZodBoolean>;
            tags: z.ZodOptional<z.ZodBoolean>;
            genre: z.ZodOptional<z.ZodBoolean>;
            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;
        }>>;
        genre: z.ZodEffects<z.ZodNullable<z.ZodEnum<[Genre, ...Genre[]]>>, Genre | null, Genre | null>;
        isPremium: z.ZodOptional<z.ZodBoolean>;
        isrc: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        isUnlisted: z.ZodOptional<z.ZodBoolean>;
        iswc: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        license: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        mood: z.ZodNullable<z.ZodOptional<z.ZodEnum<[Mood, ...Mood[]]>>>;
        premiumConditions: z.ZodOptional<z.ZodUnion<[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.ZodOptional<z.ZodString>;
        }, "strict", z.ZodTypeAny, {
            address: string;
            name: string;
            chain: "eth";
            standard: "ERC721" | "ERC1155";
            slug: string;
            imageUrl?: string | undefined;
            externalLink?: string | undefined;
        }, {
            address: string;
            name: string;
            chain: "eth";
            standard: "ERC721" | "ERC1155";
            slug: string;
            imageUrl?: string | undefined;
            externalLink?: string | undefined;
        }>, z.ZodObject<{
            chain: z.ZodLiteral<"sol">;
            address: z.ZodString;
            name: z.ZodString;
            imageUrl: z.ZodOptional<z.ZodString>;
            externalLink: z.ZodOptional<z.ZodString>;
        }, "strict", z.ZodTypeAny, {
            address: string;
            name: string;
            chain: "sol";
            imageUrl?: string | undefined;
            externalLink?: string | undefined;
        }, {
            address: string;
            name: string;
            chain: "sol";
            imageUrl?: string | undefined;
            externalLink?: string | 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;
        }>]>>;
        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;
            }[];
        }>>;
        tags: z.ZodOptional<z.ZodString>;
        title: z.ZodString;
        previewStartSeconds: z.ZodOptional<z.ZodNumber>;
        audioUploadId: z.ZodOptional<z.ZodString>;
        previewCid: z.ZodOptional<z.ZodString>;
    }, "strict", z.ZodTypeAny, {
        genre: Genre | null;
        title: string;
        aiAttributionUserId?: number | undefined;
        description?: string | undefined;
        download?: {
            cid: string;
            isDownloadable: boolean;
            requiresFollow: boolean;
        } | null | undefined;
        fieldVisibility?: {
            mood?: boolean | undefined;
            tags?: boolean | undefined;
            genre?: boolean | undefined;
            share?: boolean | undefined;
            playCount?: boolean | undefined;
            remixes?: boolean | undefined;
        } | undefined;
        isPremium?: boolean | undefined;
        isrc?: string | null | undefined;
        isUnlisted?: boolean | undefined;
        iswc?: string | null | undefined;
        license?: string | null | undefined;
        mood?: Mood | null | undefined;
        premiumConditions?: {
            address: string;
            name: string;
            chain: "eth";
            standard: "ERC721" | "ERC1155";
            slug: string;
            imageUrl?: string | undefined;
            externalLink?: string | undefined;
        } | {
            address: string;
            name: string;
            chain: "sol";
            imageUrl?: string | undefined;
            externalLink?: string | undefined;
        } | {
            followUserId: number;
        } | {
            tipUserId: number;
        } | undefined;
        releaseDate?: Date | undefined;
        remixOf?: {
            tracks: {
                parentTrackId: number;
            }[];
        } | undefined;
        tags?: string | undefined;
        previewStartSeconds?: number | undefined;
        audioUploadId?: string | undefined;
        previewCid?: string | undefined;
    }, {
        genre: Genre | null;
        title: string;
        aiAttributionUserId?: string | undefined;
        description?: string | undefined;
        download?: {
            cid: string;
            isDownloadable: boolean;
            requiresFollow: boolean;
        } | null | undefined;
        fieldVisibility?: {
            mood?: boolean | undefined;
            tags?: boolean | undefined;
            genre?: boolean | undefined;
            share?: boolean | undefined;
            playCount?: boolean | undefined;
            remixes?: boolean | undefined;
        } | undefined;
        isPremium?: boolean | undefined;
        isrc?: string | null | undefined;
        isUnlisted?: boolean | undefined;
        iswc?: string | null | undefined;
        license?: string | null | undefined;
        mood?: Mood | null | undefined;
        premiumConditions?: {
            address: string;
            name: string;
            chain: "eth";
            standard: "ERC721" | "ERC1155";
            slug: string;
            imageUrl?: string | undefined;
            externalLink?: string | undefined;
        } | {
            address: string;
            name: string;
            chain: "sol";
            imageUrl?: string | undefined;
            externalLink?: string | undefined;
        } | {
            followUserId: string;
        } | {
            tipUserId: string;
        } | undefined;
        releaseDate?: Date | undefined;
        remixOf?: {
            tracks: {
                parentTrackId: string;
            }[];
        } | undefined;
        tags?: string | undefined;
        previewStartSeconds?: number | undefined;
        audioUploadId?: string | undefined;
        previewCid?: string | undefined;
    }>;
    onProgress: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodNumber], z.ZodUnknown>, z.ZodUnknown>>;
    trackFile: 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;
    }>;
}, "strict", z.ZodTypeAny, {
    userId: number;
    metadata: {
        genre: Genre | null;
        title: string;
        aiAttributionUserId?: number | undefined;
        description?: string | undefined;
        download?: {
            cid: string;
            isDownloadable: boolean;
            requiresFollow: boolean;
        } | null | undefined;
        fieldVisibility?: {
            mood?: boolean | undefined;
            tags?: boolean | undefined;
            genre?: boolean | undefined;
            share?: boolean | undefined;
            playCount?: boolean | undefined;
            remixes?: boolean | undefined;
        } | undefined;
        isPremium?: boolean | undefined;
        isrc?: string | null | undefined;
        isUnlisted?: boolean | undefined;
        iswc?: string | null | undefined;
        license?: string | null | undefined;
        mood?: Mood | null | undefined;
        premiumConditions?: {
            address: string;
            name: string;
            chain: "eth";
            standard: "ERC721" | "ERC1155";
            slug: string;
            imageUrl?: string | undefined;
            externalLink?: string | undefined;
        } | {
            address: string;
            name: string;
            chain: "sol";
            imageUrl?: string | undefined;
            externalLink?: string | undefined;
        } | {
            followUserId: number;
        } | {
            tipUserId: number;
        } | undefined;
        releaseDate?: Date | undefined;
        remixOf?: {
            tracks: {
                parentTrackId: number;
            }[];
        } | undefined;
        tags?: string | undefined;
        previewStartSeconds?: number | undefined;
        audioUploadId?: string | undefined;
        previewCid?: string | undefined;
    };
    coverArtFile: (File | {
        buffer: Buffer;
        name?: string | undefined;
    }) & (File | {
        buffer: Buffer;
        name?: string | undefined;
    } | undefined);
    trackFile: (File | {
        buffer: Buffer;
        name?: string | undefined;
    }) & (File | {
        buffer: Buffer;
        name?: string | undefined;
    } | undefined);
    onProgress?: ((args_0: number, ...args_1: unknown[]) => unknown) | undefined;
}, {
    userId: string;
    metadata: {
        genre: Genre | null;
        title: string;
        aiAttributionUserId?: string | undefined;
        description?: string | undefined;
        download?: {
            cid: string;
            isDownloadable: boolean;
            requiresFollow: boolean;
        } | null | undefined;
        fieldVisibility?: {
            mood?: boolean | undefined;
            tags?: boolean | undefined;
            genre?: boolean | undefined;
            share?: boolean | undefined;
            playCount?: boolean | undefined;
            remixes?: boolean | undefined;
        } | undefined;
        isPremium?: boolean | undefined;
        isrc?: string | null | undefined;
        isUnlisted?: boolean | undefined;
        iswc?: string | null | undefined;
        license?: string | null | undefined;
        mood?: Mood | null | undefined;
        premiumConditions?: {
            address: string;
            name: string;
            chain: "eth";
            standard: "ERC721" | "ERC1155";
            slug: string;
            imageUrl?: string | undefined;
            externalLink?: string | undefined;
        } | {
            address: string;
            name: string;
            chain: "sol";
            imageUrl?: string | undefined;
            externalLink?: string | undefined;
        } | {
            followUserId: string;
        } | {
            tipUserId: string;
        } | undefined;
        releaseDate?: Date | undefined;
        remixOf?: {
            tracks: {
                parentTrackId: string;
            }[];
        } | undefined;
        tags?: string | undefined;
        previewStartSeconds?: number | undefined;
        audioUploadId?: string | undefined;
        previewCid?: string | undefined;
    };
    coverArtFile: (File | {
        buffer: Buffer;
        name?: string | undefined;
    }) & (File | {
        buffer: Buffer;
        name?: string | undefined;
    } | undefined);
    trackFile: (File | {
        buffer: Buffer;
        name?: string | undefined;
    }) & (File | {
        buffer: Buffer;
        name?: string | undefined;
    } | undefined);
    onProgress?: ((args_0: number, ...args_1: unknown[]) => unknown) | undefined;
}>;
export type UploadTrackRequest = Omit<z.input<ReturnType<typeof createUploadTrackSchema>>, 'onProgress'> & {
    onProgress?: (progress: number) => void;
};
export declare const createUpdateTrackSchema: () => z.ZodObject<{
    userId: z.ZodEffects<z.ZodString, number, string>;
    trackId: z.ZodEffects<z.ZodString, number, string>;
    metadata: z.ZodObject<{
        aiAttributionUserId: z.ZodOptional<z.ZodOptional<z.ZodEffects<z.ZodString, number, string>>>;
        description: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        download: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodObject<{
            cid: z.ZodString;
            isDownloadable: z.ZodBoolean;
            requiresFollow: z.ZodBoolean;
        }, "strict", z.ZodTypeAny, {
            cid: string;
            isDownloadable: boolean;
            requiresFollow: boolean;
        }, {
            cid: string;
            isDownloadable: boolean;
            requiresFollow: boolean;
        }>>>>;
        fieldVisibility: z.ZodOptional<z.ZodOptional<z.ZodObject<{
            mood: z.ZodOptional<z.ZodBoolean>;
            tags: z.ZodOptional<z.ZodBoolean>;
            genre: z.ZodOptional<z.ZodBoolean>;
            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;
        }>>>;
        genre: z.ZodOptional<z.ZodEffects<z.ZodNullable<z.ZodEnum<[Genre, ...Genre[]]>>, Genre | null, Genre | null>>;
        isPremium: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
        isrc: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
        isUnlisted: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
        iswc: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
        license: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
        mood: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodEnum<[Mood, ...Mood[]]>>>>;
        premiumConditions: z.ZodOptional<z.ZodOptional<z.ZodUnion<[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.ZodOptional<z.ZodString>;
        }, "strict", z.ZodTypeAny, {
            address: string;
            name: string;
            chain: "eth";
            standard: "ERC721" | "ERC1155";
            slug: string;
            imageUrl?: string | undefined;
            externalLink?: string | undefined;
        }, {
            address: string;
            name: string;
            chain: "eth";
            standard: "ERC721" | "ERC1155";
            slug: string;
            imageUrl?: string | undefined;
            externalLink?: string | undefined;
        }>, z.ZodObject<{
            chain: z.ZodLiteral<"sol">;
            address: z.ZodString;
            name: z.ZodString;
            imageUrl: z.ZodOptional<z.ZodString>;
            externalLink: z.ZodOptional<z.ZodString>;
        }, "strict", z.ZodTypeAny, {
            address: string;
            name: string;
            chain: "sol";
            imageUrl?: string | undefined;
            externalLink?: string | undefined;
        }, {
            address: string;
            name: string;
            chain: "sol";
            imageUrl?: string | undefined;
            externalLink?: string | 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;
        }>]>>>;
        releaseDate: z.ZodOptional<z.ZodOptional<z.ZodDate>>;
        remixOf: z.ZodOptional<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;
            }[];
        }>>>;
        tags: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        title: z.ZodOptional<z.ZodString>;
        previewStartSeconds: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
        audioUploadId: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        previewCid: z.ZodOptional<z.ZodOptional<z.ZodString>>;
    }, "strict", z.ZodTypeAny, {
        aiAttributionUserId?: number | undefined;
        description?: string | undefined;
        download?: {
            cid: string;
            isDownloadable: boolean;
            requiresFollow: boolean;
        } | null | undefined;
        fieldVisibility?: {
            mood?: boolean | undefined;
            tags?: boolean | undefined;
            genre?: boolean | undefined;
            share?: boolean | undefined;
            playCount?: boolean | undefined;
            remixes?: boolean | undefined;
        } | undefined;
        genre?: Genre | null | undefined;
        isPremium?: boolean | undefined;
        isrc?: string | null | undefined;
        isUnlisted?: boolean | undefined;
        iswc?: string | null | undefined;
        license?: string | null | undefined;
        mood?: Mood | null | undefined;
        premiumConditions?: {
            address: string;
            name: string;
            chain: "eth";
            standard: "ERC721" | "ERC1155";
            slug: string;
            imageUrl?: string | undefined;
            externalLink?: string | undefined;
        } | {
            address: string;
            name: string;
            chain: "sol";
            imageUrl?: string | undefined;
            externalLink?: string | undefined;
        } | {
            followUserId: number;
        } | {
            tipUserId: number;
        } | undefined;
        releaseDate?: Date | undefined;
        remixOf?: {
            tracks: {
                parentTrackId: number;
            }[];
        } | undefined;
        tags?: string | undefined;
        title?: string | undefined;
        previewStartSeconds?: number | undefined;
        audioUploadId?: string | undefined;
        previewCid?: string | undefined;
    }, {
        aiAttributionUserId?: string | undefined;
        description?: string | undefined;
        download?: {
            cid: string;
            isDownloadable: boolean;
            requiresFollow: boolean;
        } | null | undefined;
        fieldVisibility?: {
            mood?: boolean | undefined;
            tags?: boolean | undefined;
            genre?: boolean | undefined;
            share?: boolean | undefined;
            playCount?: boolean | undefined;
            remixes?: boolean | undefined;
        } | undefined;
        genre?: Genre | null | undefined;
        isPremium?: boolean | undefined;
        isrc?: string | null | undefined;
        isUnlisted?: boolean | undefined;
        iswc?: string | null | undefined;
        license?: string | null | undefined;
        mood?: Mood | null | undefined;
        premiumConditions?: {
            address: string;
            name: string;
            chain: "eth";
            standard: "ERC721" | "ERC1155";
            slug: string;
            imageUrl?: string | undefined;
            externalLink?: string | undefined;
        } | {
            address: string;
            name: string;
            chain: "sol";
            imageUrl?: string | undefined;
            externalLink?: string | undefined;
        } | {
            followUserId: string;
        } | {
            tipUserId: string;
        } | undefined;
        releaseDate?: Date | undefined;
        remixOf?: {
            tracks: {
                parentTrackId: string;
            }[];
        } | undefined;
        tags?: string | undefined;
        title?: string | undefined;
        previewStartSeconds?: number | undefined;
        audioUploadId?: string | undefined;
        previewCid?: string | undefined;
    }>;
    transcodePreview: z.ZodOptional<z.ZodBoolean>;
    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;
    }>>;
    onProgress: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodNumber], z.ZodUnknown>, z.ZodUnknown>>;
}, "strict", z.ZodTypeAny, {
    userId: number;
    metadata: {
        aiAttributionUserId?: number | undefined;
        description?: string | undefined;
        download?: {
            cid: string;
            isDownloadable: boolean;
            requiresFollow: boolean;
        } | null | undefined;
        fieldVisibility?: {
            mood?: boolean | undefined;
            tags?: boolean | undefined;
            genre?: boolean | undefined;
            share?: boolean | undefined;
            playCount?: boolean | undefined;
            remixes?: boolean | undefined;
        } | undefined;
        genre?: Genre | null | undefined;
        isPremium?: boolean | undefined;
        isrc?: string | null | undefined;
        isUnlisted?: boolean | undefined;
        iswc?: string | null | undefined;
        license?: string | null | undefined;
        mood?: Mood | null | undefined;
        premiumConditions?: {
            address: string;
            name: string;
            chain: "eth";
            standard: "ERC721" | "ERC1155";
            slug: string;
            imageUrl?: string | undefined;
            externalLink?: string | undefined;
        } | {
            address: string;
            name: string;
            chain: "sol";
            imageUrl?: string | undefined;
            externalLink?: string | undefined;
        } | {
            followUserId: number;
        } | {
            tipUserId: number;
        } | undefined;
        releaseDate?: Date | undefined;
        remixOf?: {
            tracks: {
                parentTrackId: number;
            }[];
        } | undefined;
        tags?: string | undefined;
        title?: string | undefined;
        previewStartSeconds?: number | undefined;
        audioUploadId?: string | undefined;
        previewCid?: string | undefined;
    };
    trackId: number;
    transcodePreview?: boolean | undefined;
    coverArtFile?: File | {
        buffer: Buffer;
        name?: string | undefined;
    } | undefined;
    onProgress?: ((args_0: number, ...args_1: unknown[]) => unknown) | undefined;
}, {
    userId: string;
    metadata: {
        aiAttributionUserId?: string | undefined;
        description?: string | undefined;
        download?: {
            cid: string;
            isDownloadable: boolean;
            requiresFollow: boolean;
        } | null | undefined;
        fieldVisibility?: {
            mood?: boolean | undefined;
            tags?: boolean | undefined;
            genre?: boolean | undefined;
            share?: boolean | undefined;
            playCount?: boolean | undefined;
            remixes?: boolean | undefined;
        } | undefined;
        genre?: Genre | null | undefined;
        isPremium?: boolean | undefined;
        isrc?: string | null | undefined;
        isUnlisted?: boolean | undefined;
        iswc?: string | null | undefined;
        license?: string | null | undefined;
        mood?: Mood | null | undefined;
        premiumConditions?: {
            address: string;
            name: string;
            chain: "eth";
            standard: "ERC721" | "ERC1155";
            slug: string;
            imageUrl?: string | undefined;
            externalLink?: string | undefined;
        } | {
            address: string;
            name: string;
            chain: "sol";
            imageUrl?: string | undefined;
            externalLink?: string | undefined;
        } | {
            followUserId: string;
        } | {
            tipUserId: string;
        } | undefined;
        releaseDate?: Date | undefined;
        remixOf?: {
            tracks: {
                parentTrackId: string;
            }[];
        } | undefined;
        tags?: string | undefined;
        title?: string | undefined;
        previewStartSeconds?: number | undefined;
        audioUploadId?: string | undefined;
        previewCid?: string | undefined;
    };
    trackId: string;
    transcodePreview?: boolean | undefined;
    coverArtFile?: File | {
        buffer: Buffer;
        name?: string | undefined;
    } | undefined;
    onProgress?: ((args_0: number, ...args_1: unknown[]) => unknown) | undefined;
}>;
export type UpdateTrackRequest = Omit<z.input<ReturnType<typeof createUpdateTrackSchema>>, 'onProgress'> & {
    onProgress?: (progress: number) => void;
};
export declare const DeleteTrackSchema: z.ZodObject<{
    userId: z.ZodEffects<z.ZodString, number, string>;
    trackId: z.ZodEffects<z.ZodString, number, string>;
}, "strict", z.ZodTypeAny, {
    userId: number;
    trackId: number;
}, {
    userId: string;
    trackId: string;
}>;
export type DeleteTrackRequest = z.input<typeof DeleteTrackSchema>;
export declare const FavoriteTrackSchema: z.ZodObject<{
    userId: z.ZodEffects<z.ZodString, number, string>;
    trackId: 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;
    }, "strict", z.ZodTypeAny, {
        isSaveOfRepost: boolean;
    }, {
        isSaveOfRepost: boolean;
    }>>;
}, "strict", z.ZodTypeAny, {
    userId: number;
    trackId: number;
    metadata?: {
        isSaveOfRepost: boolean;
    } | undefined;
}, {
    userId: string;
    trackId: string;
    metadata?: {
        isSaveOfRepost: boolean;
    } | undefined;
}>;
export type FavoriteTrackRequest = z.input<typeof FavoriteTrackSchema>;
export declare const UnfavoriteTrackSchema: z.ZodObject<{
    userId: z.ZodEffects<z.ZodString, number, string>;
    trackId: z.ZodEffects<z.ZodString, number, string>;
}, "strict", z.ZodTypeAny, {
    userId: number;
    trackId: number;
}, {
    userId: string;
    trackId: string;
}>;
export type UnfavoriteTrackRequest = z.input<typeof UnfavoriteTrackSchema>;
export declare const RepostTrackSchema: z.ZodObject<{
    userId: z.ZodEffects<z.ZodString, number, string>;
    trackId: 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;
    }, "strict", z.ZodTypeAny, {
        isRepostOfRepost: boolean;
    }, {
        isRepostOfRepost: boolean;
    }>>;
}, "strict", z.ZodTypeAny, {
    userId: number;
    trackId: number;
    metadata?: {
        isRepostOfRepost: boolean;
    } | undefined;
}, {
    userId: string;
    trackId: string;
    metadata?: {
        isRepostOfRepost: boolean;
    } | undefined;
}>;
export type RepostTrackRequest = z.input<typeof RepostTrackSchema>;
export declare const UnrepostTrackSchema: z.ZodObject<{
    userId: z.ZodEffects<z.ZodString, number, string>;
    trackId: z.ZodEffects<z.ZodString, number, string>;
}, "strict", z.ZodTypeAny, {
    userId: number;
    trackId: number;
}, {
    userId: string;
    trackId: string;
}>;
export type UnrepostTrackRequest = z.input<typeof UnrepostTrackSchema>;
