import { z } from 'zod';
export declare const RelationshipStatusSchema: z.ZodEnum<{
    none: "none";
    rejected: "rejected";
    pending: "pending";
    requested: "requested";
    friend: "friend";
}>;
export type RelationshipStatus = z.infer<typeof RelationshipStatusSchema>;
export declare const UserProfileSchema: z.ZodObject<{
    id: z.ZodString;
    firstName: z.ZodString;
    lastName: z.ZodNullable<z.ZodString>;
    avatar: z.ZodNullable<z.ZodObject<{
        path: z.ZodString;
        url: z.ZodString;
        width: z.ZodOptional<z.ZodNumber>;
        height: z.ZodOptional<z.ZodNumber>;
        thumbhash: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
    username: z.ZodString;
    bio: z.ZodNullable<z.ZodString>;
    badges: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
        id: z.ZodString;
        label: z.ZodString;
        url: z.ZodString;
    }, z.core.$strict>>>>;
    status: z.ZodEnum<{
        none: "none";
        rejected: "rejected";
        pending: "pending";
        requested: "requested";
        friend: "friend";
    }>;
    publicKey: z.ZodNullable<z.ZodString>;
    contentPublicKey: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    contentPublicKeySig: z.ZodOptional<z.ZodNullable<z.ZodString>>;
}, z.core.$strip>;
export type UserProfile = z.infer<typeof UserProfileSchema>;
export declare const UserResponseSchema: z.ZodObject<{
    user: z.ZodObject<{
        id: z.ZodString;
        firstName: z.ZodString;
        lastName: z.ZodNullable<z.ZodString>;
        avatar: z.ZodNullable<z.ZodObject<{
            path: z.ZodString;
            url: z.ZodString;
            width: z.ZodOptional<z.ZodNumber>;
            height: z.ZodOptional<z.ZodNumber>;
            thumbhash: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>;
        username: z.ZodString;
        bio: z.ZodNullable<z.ZodString>;
        badges: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
            id: z.ZodString;
            label: z.ZodString;
            url: z.ZodString;
        }, z.core.$strict>>>>;
        status: z.ZodEnum<{
            none: "none";
            rejected: "rejected";
            pending: "pending";
            requested: "requested";
            friend: "friend";
        }>;
        publicKey: z.ZodNullable<z.ZodString>;
        contentPublicKey: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        contentPublicKeySig: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, z.core.$strip>;
}, z.core.$strip>;
export type UserResponse = z.infer<typeof UserResponseSchema>;
export declare const FriendsResponseSchema: z.ZodObject<{
    friends: z.ZodArray<z.ZodObject<{
        id: z.ZodString;
        firstName: z.ZodString;
        lastName: z.ZodNullable<z.ZodString>;
        avatar: z.ZodNullable<z.ZodObject<{
            path: z.ZodString;
            url: z.ZodString;
            width: z.ZodOptional<z.ZodNumber>;
            height: z.ZodOptional<z.ZodNumber>;
            thumbhash: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>;
        username: z.ZodString;
        bio: z.ZodNullable<z.ZodString>;
        badges: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
            id: z.ZodString;
            label: z.ZodString;
            url: z.ZodString;
        }, z.core.$strict>>>>;
        status: z.ZodEnum<{
            none: "none";
            rejected: "rejected";
            pending: "pending";
            requested: "requested";
            friend: "friend";
        }>;
        publicKey: z.ZodNullable<z.ZodString>;
        contentPublicKey: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        contentPublicKeySig: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, z.core.$strip>>;
}, z.core.$strip>;
export type FriendsResponse = z.infer<typeof FriendsResponseSchema>;
export declare const UsersSearchResponseSchema: z.ZodObject<{
    users: z.ZodArray<z.ZodObject<{
        id: z.ZodString;
        firstName: z.ZodString;
        lastName: z.ZodNullable<z.ZodString>;
        avatar: z.ZodNullable<z.ZodObject<{
            path: z.ZodString;
            url: z.ZodString;
            width: z.ZodOptional<z.ZodNumber>;
            height: z.ZodOptional<z.ZodNumber>;
            thumbhash: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>;
        username: z.ZodString;
        bio: z.ZodNullable<z.ZodString>;
        badges: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
            id: z.ZodString;
            label: z.ZodString;
            url: z.ZodString;
        }, z.core.$strict>>>>;
        status: z.ZodEnum<{
            none: "none";
            rejected: "rejected";
            pending: "pending";
            requested: "requested";
            friend: "friend";
        }>;
        publicKey: z.ZodNullable<z.ZodString>;
        contentPublicKey: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        contentPublicKeySig: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, z.core.$strip>>;
}, z.core.$strip>;
export type UsersSearchResponse = z.infer<typeof UsersSearchResponseSchema>;
export declare const RelationshipUpdatedEventSchema: z.ZodObject<{
    fromUserId: z.ZodString;
    toUserId: z.ZodString;
    status: z.ZodEnum<{
        none: "none";
        rejected: "rejected";
        pending: "pending";
        requested: "requested";
        friend: "friend";
    }>;
    action: z.ZodEnum<{
        created: "created";
        deleted: "deleted";
        updated: "updated";
    }>;
    fromUser: z.ZodOptional<z.ZodObject<{
        id: z.ZodString;
        firstName: z.ZodString;
        lastName: z.ZodNullable<z.ZodString>;
        avatar: z.ZodNullable<z.ZodObject<{
            path: z.ZodString;
            url: z.ZodString;
            width: z.ZodOptional<z.ZodNumber>;
            height: z.ZodOptional<z.ZodNumber>;
            thumbhash: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>;
        username: z.ZodString;
        bio: z.ZodNullable<z.ZodString>;
        badges: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
            id: z.ZodString;
            label: z.ZodString;
            url: z.ZodString;
        }, z.core.$strict>>>>;
        status: z.ZodEnum<{
            none: "none";
            rejected: "rejected";
            pending: "pending";
            requested: "requested";
            friend: "friend";
        }>;
        publicKey: z.ZodNullable<z.ZodString>;
        contentPublicKey: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        contentPublicKeySig: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, z.core.$strip>>;
    toUser: z.ZodOptional<z.ZodObject<{
        id: z.ZodString;
        firstName: z.ZodString;
        lastName: z.ZodNullable<z.ZodString>;
        avatar: z.ZodNullable<z.ZodObject<{
            path: z.ZodString;
            url: z.ZodString;
            width: z.ZodOptional<z.ZodNumber>;
            height: z.ZodOptional<z.ZodNumber>;
            thumbhash: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>;
        username: z.ZodString;
        bio: z.ZodNullable<z.ZodString>;
        badges: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
            id: z.ZodString;
            label: z.ZodString;
            url: z.ZodString;
        }, z.core.$strict>>>>;
        status: z.ZodEnum<{
            none: "none";
            rejected: "rejected";
            pending: "pending";
            requested: "requested";
            friend: "friend";
        }>;
        publicKey: z.ZodNullable<z.ZodString>;
        contentPublicKey: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        contentPublicKeySig: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, z.core.$strip>>;
    timestamp: z.ZodNumber;
}, z.core.$strip>;
export type RelationshipUpdatedEvent = z.infer<typeof RelationshipUpdatedEventSchema>;
//# sourceMappingURL=friends.d.ts.map