/// <reference types="node" />
import { z } from 'zod';
export declare const UpdateProfileSchema: z.ZodObject<{
    userId: z.ZodEffects<z.ZodString, number, string>;
    profilePictureFile: 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;
    }>>;
    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>>;
    metadata: z.ZodObject<{
        name: z.ZodOptional<z.ZodString>;
        bio: z.ZodOptional<z.ZodString>;
        location: z.ZodOptional<z.ZodString>;
        isDeactivated: z.ZodOptional<z.ZodBoolean>;
        artistPickTrackId: z.ZodOptional<z.ZodEffects<z.ZodString, number, string>>;
    }, "strict", z.ZodTypeAny, {
        name?: string | undefined;
        bio?: string | undefined;
        location?: string | undefined;
        isDeactivated?: boolean | undefined;
        artistPickTrackId?: number | undefined;
    }, {
        name?: string | undefined;
        bio?: string | undefined;
        location?: string | undefined;
        isDeactivated?: boolean | undefined;
        artistPickTrackId?: string | undefined;
    }>;
}, "strict", z.ZodTypeAny, {
    userId: number;
    metadata: {
        name?: string | undefined;
        bio?: string | undefined;
        location?: string | undefined;
        isDeactivated?: boolean | undefined;
        artistPickTrackId?: number | undefined;
    };
    profilePictureFile?: File | {
        buffer: Buffer;
        name?: string | undefined;
    } | undefined;
    coverArtFile?: File | {
        buffer: Buffer;
        name?: string | undefined;
    } | undefined;
    onProgress?: ((args_0: number, ...args_1: unknown[]) => unknown) | undefined;
}, {
    userId: string;
    metadata: {
        name?: string | undefined;
        bio?: string | undefined;
        location?: string | undefined;
        isDeactivated?: boolean | undefined;
        artistPickTrackId?: string | undefined;
    };
    profilePictureFile?: File | {
        buffer: Buffer;
        name?: string | undefined;
    } | undefined;
    coverArtFile?: File | {
        buffer: Buffer;
        name?: string | undefined;
    } | undefined;
    onProgress?: ((args_0: number, ...args_1: unknown[]) => unknown) | undefined;
}>;
export declare type UpdateProfileRequest = Omit<z.input<typeof UpdateProfileSchema>, 'onProgress'> & {
    onProgress?: (progress: number) => void;
};
export declare const FollowUserSchema: z.ZodObject<{
    userId: z.ZodEffects<z.ZodString, number, string>;
    followeeUserId: z.ZodEffects<z.ZodString, number, string>;
}, "strict", z.ZodTypeAny, {
    userId: number;
    followeeUserId: number;
}, {
    userId: string;
    followeeUserId: string;
}>;
export declare type FollowUserRequest = z.input<typeof FollowUserSchema>;
export declare const UnfollowUserSchema: z.ZodObject<{
    userId: z.ZodEffects<z.ZodString, number, string>;
    followeeUserId: z.ZodEffects<z.ZodString, number, string>;
}, "strict", z.ZodTypeAny, {
    userId: number;
    followeeUserId: number;
}, {
    userId: string;
    followeeUserId: string;
}>;
export declare type UnfollowUserRequest = z.input<typeof UnfollowUserSchema>;
export declare const SubscribeToUserSchema: z.ZodObject<{
    userId: z.ZodEffects<z.ZodString, number, string>;
    subscribeeUserId: z.ZodEffects<z.ZodString, number, string>;
}, "strict", z.ZodTypeAny, {
    userId: number;
    subscribeeUserId: number;
}, {
    userId: string;
    subscribeeUserId: string;
}>;
export declare type SubscribeToUserRequest = z.input<typeof SubscribeToUserSchema>;
export declare const UnsubscribeFromUserSchema: z.ZodObject<{
    userId: z.ZodEffects<z.ZodString, number, string>;
    subscribeeUserId: z.ZodEffects<z.ZodString, number, string>;
}, "strict", z.ZodTypeAny, {
    userId: number;
    subscribeeUserId: number;
}, {
    userId: string;
    subscribeeUserId: string;
}>;
export declare type UnsubscribeFromUserRequest = z.input<typeof UnsubscribeFromUserSchema>;
export declare const SendTipSchema: z.ZodObject<{
    amount: z.ZodNumber;
    senderUserId: z.ZodEffects<z.ZodString, number, string>;
    receiverUserId: z.ZodEffects<z.ZodString, number, string>;
}, "strict", z.ZodTypeAny, {
    amount: number;
    senderUserId: number;
    receiverUserId: number;
}, {
    amount: number;
    senderUserId: string;
    receiverUserId: string;
}>;
export declare type SendTipRequest = z.input<typeof SendTipSchema>;
