declare type addUserToGroup = operations['addUserToGroup'];

declare abstract class AuthClient {
    /**
     * Getter for retrieving access token.
     */
    abstract get accessToken(): string | null;
    /**
     * Requests an access token from the authentication provider.
     * @abstract
     * @returns {Promise<TokenEndpointResponse>} - A promise that resolves with the token endpoint response.
     */
    abstract requestAccessToken(): Promise<UseAuthResponse>;
}

export declare class Client {
    #private;
    constructor(auth: AuthClient);
    readonly users: {
        /**
         * @name getCurrentUser
         *
         */
        getCurrentUser: () => Promise<{
            user?: {
                id?: number;
                first_name?: string;
                last_name?: string | null;
                email?: string;
                registration_status?: "confirmed" | "dummy" | "invited";
                picture?: {
                    small?: string;
                    medium?: string;
                    large?: string;
                };
                custom_picture?: boolean;
            } & {
                notifications_read?: string;
                notifications_count?: number;
                notifications?: {
                    [key: string]: boolean;
                };
                default_currency?: string;
                locale?: string;
            };
        }>;
        /**
         * @name getUser
         *
         * @param id
         *
         */
        getUser: (id: string) => Promise<{
            user?: {
                id?: number;
                first_name?: string;
                last_name?: string | null;
                email?: string;
                registration_status?: "confirmed" | "dummy" | "invited";
                picture?: {
                    small?: string;
                    medium?: string;
                    large?: string;
                };
                custom_picture?: boolean;
            };
        }>;
        /**
         * @name updateUser
         *
         * @param id
         *
         */
        updateUser: (id: string, request_body: OperationRequestBodyContent<updateUser>) => Promise<{
            id?: number;
            first_name?: string;
            last_name?: string | null;
            email?: string;
            registration_status?: "confirmed" | "dummy" | "invited";
            picture?: {
                small?: string;
                medium?: string;
                large?: string;
            };
            custom_picture?: boolean;
        }>;
    };
    readonly groups: {
        /**
         * @name getGroups
         *
         */
        getGroups: () => Promise<{
            groups?: {
                id?: number;
                name?: string;
                group_type?: "home" | "trip" | "couple" | "other" | "apartment" | "house";
                updated_at?: string;
                simplify_by_default?: boolean;
                members?: ({
                    id?: number;
                    first_name?: string;
                    last_name?: string | null;
                    email?: string;
                    registration_status?: "confirmed" | "dummy" | "invited";
                    picture?: {
                        small?: string;
                        medium?: string;
                        large?: string;
                    };
                    custom_picture?: boolean;
                } & {
                    balance?: {
                        currency_code?: string;
                        amount?: string;
                    }[];
                })[];
                original_debts?: {
                    from?: number;
                    to?: number;
                    amount?: string;
                    currency_code?: string;
                }[];
                simplified_debts?: {
                    from?: number;
                    to?: number;
                    amount?: string;
                    currency_code?: string;
                }[];
                avatar?: {
                    original?: string | null;
                    xxlarge?: string;
                    xlarge?: string;
                    large?: string;
                    medium?: string;
                    small?: string;
                };
                custom_avatar?: boolean;
                cover_photo?: {
                    xxlarge?: string;
                    xlarge?: string;
                };
                invite_link?: string;
            }[];
        }>;
        /**
         * @name getGroup
         *
         * @param id
         *
         */
        getGroup: (id: string) => Promise<{
            group?: {
                id?: number;
                name?: string;
                group_type?: "home" | "trip" | "couple" | "other" | "apartment" | "house";
                updated_at?: string;
                simplify_by_default?: boolean;
                members?: ({
                    id?: number;
                    first_name?: string;
                    last_name?: string | null;
                    email?: string;
                    registration_status?: "confirmed" | "dummy" | "invited";
                    picture?: {
                        small?: string;
                        medium?: string;
                        large?: string;
                    };
                    custom_picture?: boolean;
                } & {
                    balance?: {
                        currency_code?: string;
                        amount?: string;
                    }[];
                })[];
                original_debts?: {
                    from?: number;
                    to?: number;
                    amount?: string;
                    currency_code?: string;
                }[];
                simplified_debts?: {
                    from?: number;
                    to?: number;
                    amount?: string;
                    currency_code?: string;
                }[];
                avatar?: {
                    original?: string | null;
                    xxlarge?: string;
                    xlarge?: string;
                    large?: string;
                    medium?: string;
                    small?: string;
                };
                custom_avatar?: boolean;
                cover_photo?: {
                    xxlarge?: string;
                    xlarge?: string;
                };
                invite_link?: string;
            };
        }>;
        /**
         * @name createGroup
         *
         */
        createGroup: (request_body: OperationRequestBodyContent<createGroup>) => Promise<{
            group?: {
                id?: number;
                name?: string;
                group_type?: "home" | "trip" | "couple" | "other" | "apartment" | "house";
                updated_at?: string;
                simplify_by_default?: boolean;
                members?: ({
                    id?: number;
                    first_name?: string;
                    last_name?: string | null;
                    email?: string;
                    registration_status?: "confirmed" | "dummy" | "invited";
                    picture?: {
                        small?: string;
                        medium?: string;
                        large?: string;
                    };
                    custom_picture?: boolean;
                } & {
                    balance?: {
                        currency_code?: string;
                        amount?: string;
                    }[];
                })[];
                original_debts?: {
                    from?: number;
                    to?: number;
                    amount?: string;
                    currency_code?: string;
                }[];
                simplified_debts?: {
                    from?: number;
                    to?: number;
                    amount?: string;
                    currency_code?: string;
                }[];
                avatar?: {
                    original?: string | null;
                    xxlarge?: string;
                    xlarge?: string;
                    large?: string;
                    medium?: string;
                    small?: string;
                };
                custom_avatar?: boolean;
                cover_photo?: {
                    xxlarge?: string;
                    xlarge?: string;
                };
                invite_link?: string;
            };
        }>;
        /**
         * @name deleteGroup
         *
         * @param id
         *
         */
        deleteGroup: (id: string) => Promise<{
            success?: boolean;
        }>;
        /**
         * @name unDeleteGroup
         *
         * @param id
         *
         */
        unDeleteGroup: (id: string) => Promise<{
            success?: boolean;
            errors?: string[];
        }>;
        /**
         * @name addUserToGroup
         *
         */
        addUserToGroup: (request_body: OperationRequestBodyContent<addUserToGroup>) => Promise<{
            success?: boolean;
            user?: {
                id?: number;
                first_name?: string;
                last_name?: string | null;
                email?: string;
                registration_status?: "confirmed" | "dummy" | "invited";
                picture?: {
                    small?: string;
                    medium?: string;
                    large?: string;
                };
                custom_picture?: boolean;
            };
            errors?: {
                [key: string]: string[];
            };
        }>;
        /**
         * @name removeUserFromGroup
         *
         */
        removeUserFromGroup: (request_body: OperationRequestBodyContent<removeUserFromGroup>) => Promise<{
            success?: boolean;
            errors?: {
                [key: string]: string[];
            };
        }>;
    };
    readonly friends: {
        /**
         * @name getFriends
         *
         */
        getFriends: () => Promise<{
            friends?: (({
                id?: number;
                first_name?: string;
                last_name?: string | null;
                email?: string;
                registration_status?: "confirmed" | "dummy" | "invited";
                picture?: {
                    small?: string;
                    medium?: string;
                    large?: string;
                };
                custom_picture?: boolean;
            } & {
                groups?: {
                    group_id?: number;
                    balance?: {
                        currency_code?: string;
                        amount?: string;
                    }[];
                }[];
                balance?: {
                    currency_code?: string;
                    amount?: string;
                }[];
                updated_at?: string;
            }) & unknown)[];
        }>;
        /**
         * @name getFriend
         *
         * @param id User ID of the friend
         *
         */
        getFriend: (id: string) => Promise<{
            friend?: {
                id?: number;
                first_name?: string;
                last_name?: string | null;
                email?: string;
                registration_status?: "confirmed" | "dummy" | "invited";
                picture?: {
                    small?: string;
                    medium?: string;
                    large?: string;
                };
                custom_picture?: boolean;
            } & {
                groups?: {
                    group_id?: number;
                    balance?: {
                        currency_code?: string;
                        amount?: string;
                    }[];
                }[];
                balance?: {
                    currency_code?: string;
                    amount?: string;
                }[];
                updated_at?: string;
            };
        }>;
        /**
         * @name createFriend
         *
         */
        createFriend: (request_body: OperationRequestBodyContent<createFriend>) => Promise<{
            friend?: {
                id?: number;
                first_name?: string;
                last_name?: string | null;
                email?: string;
                registration_status?: "confirmed" | "dummy" | "invited";
                picture?: {
                    small?: string;
                    medium?: string;
                    large?: string;
                };
                custom_picture?: boolean;
            } & {
                groups?: {
                    group_id?: number;
                    balance?: {
                        currency_code?: string;
                        amount?: string;
                    }[];
                }[];
                balance?: {
                    currency_code?: string;
                    amount?: string;
                }[];
                updated_at?: string;
            };
        }>;
        /**
         * @name createFriends
         *
         */
        createFriends: (request_body: OperationRequestBodyContent<createFriends>) => Promise<{
            users?: (({
                id?: number;
                first_name?: string;
                last_name?: string | null;
                email?: string;
                registration_status?: "confirmed" | "dummy" | "invited";
                picture?: {
                    small?: string;
                    medium?: string;
                    large?: string;
                };
                custom_picture?: boolean;
            } & {
                groups?: {
                    group_id?: number;
                    balance?: {
                        currency_code?: string;
                        amount?: string;
                    }[];
                }[];
                balance?: {
                    currency_code?: string;
                    amount?: string;
                }[];
                updated_at?: string;
            }) & unknown)[];
            errors?: {
                [key: string]: string[];
            };
        }>;
        /**
         * @name deleteFriend
         *
         * @param id User ID of the friend
         *
         */
        deleteFriend: (id: string) => Promise<{
            success?: boolean;
            errors?: {
                [key: string]: string[];
            };
        }>;
    };
    readonly expenses: {
        /**
         * @name getExpense
         *
         * @param id
         *
         */
        getExpense: (id: string) => Promise<{
            expense?: {
                cost?: string;
                description?: string;
                details?: string | null;
                date?: string;
                repeat_interval?: "never" | "weekly" | "fortnightly" | "monthly" | "yearly";
                currency_code?: string;
                category_id?: number;
            } & {
                id?: number;
                group_id?: number | null;
                friendship_id?: number | null;
                expense_bundle_id?: number | null;
                description?: string;
                repeats?: boolean;
                repeat_interval?: "never" | "weekly" | "fortnightly" | "monthly" | "yearly";
                email_reminder?: boolean;
                email_reminder_in_advance?: null | -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 14;
                next_repeat?: string | null;
                details?: string | null;
                comments_count?: number;
                payment?: boolean;
                transaction_confirmed?: boolean;
                cost?: string;
                currency_code?: string;
                repayments?: {
                    from?: number;
                    to?: number;
                    amount?: string;
                }[];
                date?: string;
                created_at?: string;
                created_by?: {
                    id?: number;
                    first_name?: string;
                    last_name?: string | null;
                    email?: string;
                    registration_status?: "confirmed" | "dummy" | "invited";
                    picture?: {
                        small?: string;
                        medium?: string;
                        large?: string;
                    };
                    custom_picture?: boolean;
                } & unknown;
                updated_at?: string;
                updated_by?: {
                    id?: number;
                    first_name?: string;
                    last_name?: string | null;
                    email?: string;
                    registration_status?: "confirmed" | "dummy" | "invited";
                    picture?: {
                        small?: string;
                        medium?: string;
                        large?: string;
                    };
                    custom_picture?: boolean;
                } & unknown;
                deleted_at?: string | null;
                deleted_by?: {
                    id?: number;
                    first_name?: string;
                    last_name?: string | null;
                    email?: string;
                    registration_status?: "confirmed" | "dummy" | "invited";
                    picture?: {
                        small?: string;
                        medium?: string;
                        large?: string;
                    };
                    custom_picture?: boolean;
                } & unknown;
                category?: {
                    id?: number;
                    name?: string;
                };
                receipt?: {
                    large?: string | null;
                    original?: string | null;
                };
                users?: {
                    user?: {
                        id?: number;
                        first_name?: string;
                        last_name?: string;
                        picture?: {
                            medium?: string;
                        };
                    };
                    user_id?: number;
                    paid_share?: string;
                    owed_share?: string;
                    net_balance?: string;
                }[];
                comments?: {
                    id?: number;
                    content?: string;
                    comment_type?: "System" | "User";
                    relation_type?: "ExpenseComment";
                    relation_id?: number;
                    created_at?: string;
                    deleted_at?: string | null;
                    user?: {
                        id?: number;
                        first_name?: string;
                        last_name?: string;
                        picture?: {
                            medium?: string;
                        };
                    };
                }[];
            };
        }>;
        /**
         * @name getExpenses
         *
         */
        getExpenses: (params: OperationQueryParams<getExpenses>) => Promise<{
            expenses?: ({
                cost?: string;
                description?: string;
                details?: string | null;
                date?: string;
                repeat_interval?: "never" | "weekly" | "fortnightly" | "monthly" | "yearly";
                currency_code?: string;
                category_id?: number;
            } & {
                id?: number;
                group_id?: number | null;
                friendship_id?: number | null;
                expense_bundle_id?: number | null;
                description?: string;
                repeats?: boolean;
                repeat_interval?: "never" | "weekly" | "fortnightly" | "monthly" | "yearly";
                email_reminder?: boolean;
                email_reminder_in_advance?: null | -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 14;
                next_repeat?: string | null;
                details?: string | null;
                comments_count?: number;
                payment?: boolean;
                transaction_confirmed?: boolean;
                cost?: string;
                currency_code?: string;
                repayments?: {
                    from?: number;
                    to?: number;
                    amount?: string;
                }[];
                date?: string;
                created_at?: string;
                created_by?: {
                    id?: number;
                    first_name?: string;
                    last_name?: string | null;
                    email?: string;
                    registration_status?: "confirmed" | "dummy" | "invited";
                    picture?: {
                        small?: string;
                        medium?: string;
                        large?: string;
                    };
                    custom_picture?: boolean;
                } & unknown;
                updated_at?: string;
                updated_by?: {
                    id?: number;
                    first_name?: string;
                    last_name?: string | null;
                    email?: string;
                    registration_status?: "confirmed" | "dummy" | "invited";
                    picture?: {
                        small?: string;
                        medium?: string;
                        large?: string;
                    };
                    custom_picture?: boolean;
                } & unknown;
                deleted_at?: string | null;
                deleted_by?: {
                    id?: number;
                    first_name?: string;
                    last_name?: string | null;
                    email?: string;
                    registration_status?: "confirmed" | "dummy" | "invited";
                    picture?: {
                        small?: string;
                        medium?: string;
                        large?: string;
                    };
                    custom_picture?: boolean;
                } & unknown;
                category?: {
                    id?: number;
                    name?: string;
                };
                receipt?: {
                    large?: string | null;
                    original?: string | null;
                };
                users?: {
                    user?: {
                        id?: number;
                        first_name?: string;
                        last_name?: string;
                        picture?: {
                            medium?: string;
                        };
                    };
                    user_id?: number;
                    paid_share?: string;
                    owed_share?: string;
                    net_balance?: string;
                }[];
                comments?: {
                    id?: number;
                    content?: string;
                    comment_type?: "System" | "User";
                    relation_type?: "ExpenseComment";
                    relation_id?: number;
                    created_at?: string;
                    deleted_at?: string | null;
                    user?: {
                        id?: number;
                        first_name?: string;
                        last_name?: string;
                        picture?: {
                            medium?: string;
                        };
                    };
                }[];
            })[];
        }>;
        /**
         * @name createExpense
         *
         */
        createExpense: (request_body: OperationRequestBodyContent<createExpense>) => Promise<{
            expenses?: ({
                cost?: string;
                description?: string;
                details?: string | null;
                date?: string;
                repeat_interval?: "never" | "weekly" | "fortnightly" | "monthly" | "yearly";
                currency_code?: string;
                category_id?: number;
            } & {
                id?: number;
                group_id?: number | null;
                friendship_id?: number | null;
                expense_bundle_id?: number | null;
                description?: string;
                repeats?: boolean;
                repeat_interval?: "never" | "weekly" | "fortnightly" | "monthly" | "yearly";
                email_reminder?: boolean;
                email_reminder_in_advance?: null | -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 14;
                next_repeat?: string | null;
                details?: string | null;
                comments_count?: number;
                payment?: boolean;
                transaction_confirmed?: boolean;
                cost?: string;
                currency_code?: string;
                repayments?: {
                    from?: number;
                    to?: number;
                    amount?: string;
                }[];
                date?: string;
                created_at?: string;
                created_by?: {
                    id?: number;
                    first_name?: string;
                    last_name?: string | null;
                    email?: string;
                    registration_status?: "confirmed" | "dummy" | "invited";
                    picture?: {
                        small?: string;
                        medium?: string;
                        large?: string;
                    };
                    custom_picture?: boolean;
                } & unknown;
                updated_at?: string;
                updated_by?: {
                    id?: number;
                    first_name?: string;
                    last_name?: string | null;
                    email?: string;
                    registration_status?: "confirmed" | "dummy" | "invited";
                    picture?: {
                        small?: string;
                        medium?: string;
                        large?: string;
                    };
                    custom_picture?: boolean;
                } & unknown;
                deleted_at?: string | null;
                deleted_by?: {
                    id?: number;
                    first_name?: string;
                    last_name?: string | null;
                    email?: string;
                    registration_status?: "confirmed" | "dummy" | "invited";
                    picture?: {
                        small?: string;
                        medium?: string;
                        large?: string;
                    };
                    custom_picture?: boolean;
                } & unknown;
                category?: {
                    id?: number;
                    name?: string;
                };
                receipt?: {
                    large?: string | null;
                    original?: string | null;
                };
                users?: {
                    user?: {
                        id?: number;
                        first_name?: string;
                        last_name?: string;
                        picture?: {
                            medium?: string;
                        };
                    };
                    user_id?: number;
                    paid_share?: string;
                    owed_share?: string;
                    net_balance?: string;
                }[];
                comments?: {
                    id?: number;
                    content?: string;
                    comment_type?: "System" | "User";
                    relation_type?: "ExpenseComment";
                    relation_id?: number;
                    created_at?: string;
                    deleted_at?: string | null;
                    user?: {
                        id?: number;
                        first_name?: string;
                        last_name?: string;
                        picture?: {
                            medium?: string;
                        };
                    };
                }[];
            })[];
            errors?: Record<string, never>;
        }>;
        /**
         * @name updateExpense
         *
         * @param id ID of the expense to update
         *
         */
        updateExpense: (id: string, request_body: OperationRequestBodyContent<updateExpense>) => Promise<{
            expenses?: ({
                cost?: string;
                description?: string;
                details?: string | null;
                date?: string;
                repeat_interval?: "never" | "weekly" | "fortnightly" | "monthly" | "yearly";
                currency_code?: string;
                category_id?: number;
            } & {
                id?: number;
                group_id?: number | null;
                friendship_id?: number | null;
                expense_bundle_id?: number | null;
                description?: string;
                repeats?: boolean;
                repeat_interval?: "never" | "weekly" | "fortnightly" | "monthly" | "yearly";
                email_reminder?: boolean;
                email_reminder_in_advance?: null | -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 14;
                next_repeat?: string | null;
                details?: string | null;
                comments_count?: number;
                payment?: boolean;
                transaction_confirmed?: boolean;
                cost?: string;
                currency_code?: string;
                repayments?: {
                    from?: number;
                    to?: number;
                    amount?: string;
                }[];
                date?: string;
                created_at?: string;
                created_by?: {
                    id?: number;
                    first_name?: string;
                    last_name?: string | null;
                    email?: string;
                    registration_status?: "confirmed" | "dummy" | "invited";
                    picture?: {
                        small?: string;
                        medium?: string;
                        large?: string;
                    };
                    custom_picture?: boolean;
                } & unknown;
                updated_at?: string;
                updated_by?: {
                    id?: number;
                    first_name?: string;
                    last_name?: string | null;
                    email?: string;
                    registration_status?: "confirmed" | "dummy" | "invited";
                    picture?: {
                        small?: string;
                        medium?: string;
                        large?: string;
                    };
                    custom_picture?: boolean;
                } & unknown;
                deleted_at?: string | null;
                deleted_by?: {
                    id?: number;
                    first_name?: string;
                    last_name?: string | null;
                    email?: string;
                    registration_status?: "confirmed" | "dummy" | "invited";
                    picture?: {
                        small?: string;
                        medium?: string;
                        large?: string;
                    };
                    custom_picture?: boolean;
                } & unknown;
                category?: {
                    id?: number;
                    name?: string;
                };
                receipt?: {
                    large?: string | null;
                    original?: string | null;
                };
                users?: {
                    user?: {
                        id?: number;
                        first_name?: string;
                        last_name?: string;
                        picture?: {
                            medium?: string;
                        };
                    };
                    user_id?: number;
                    paid_share?: string;
                    owed_share?: string;
                    net_balance?: string;
                }[];
                comments?: {
                    id?: number;
                    content?: string;
                    comment_type?: "System" | "User";
                    relation_type?: "ExpenseComment";
                    relation_id?: number;
                    created_at?: string;
                    deleted_at?: string | null;
                    user?: {
                        id?: number;
                        first_name?: string;
                        last_name?: string;
                        picture?: {
                            medium?: string;
                        };
                    };
                }[];
            })[];
            errors?: Record<string, never>;
        }>;
        /**
         * @name deleteExpense
         *
         * @param id ID of the expense to delete
         *
         */
        deleteExpense: (id: string) => Promise<{
            success: boolean;
            errors?: Record<string, never>;
        }>;
        /**
         * @name unDeleteExpense
         *
         * @param id ID of the expense to restore
         *
         */
        unDeleteExpense: (id: string) => Promise<{
            success?: boolean;
        }>;
    };
    readonly comments: {
        /**
         * @name getComments
         *
         */
        getComments: (params: OperationQueryParams<getComments>) => Promise<{
            comments?: {
                id?: number;
                content?: string;
                comment_type?: "System" | "User";
                relation_type?: "ExpenseComment";
                relation_id?: number;
                created_at?: string;
                deleted_at?: string | null;
                user?: {
                    id?: number;
                    first_name?: string;
                    last_name?: string;
                    picture?: {
                        medium?: string;
                    };
                };
            }[];
        }>;
        /**
         * @name createComment
         *
         */
        createComment: (request_body: OperationRequestBodyContent<createComment>) => Promise<{
            comment?: {
                id?: number;
                content?: string;
                comment_type?: "System" | "User";
                relation_type?: "ExpenseComment";
                relation_id?: number;
                created_at?: string;
                deleted_at?: string | null;
                user?: {
                    id?: number;
                    first_name?: string;
                    last_name?: string;
                    picture?: {
                        medium?: string;
                    };
                };
            } & {
                relation_id?: unknown;
                comment_type?: unknown;
                content?: unknown;
                user?: {
                    id?: number;
                    first_name?: string;
                    last_name?: string;
                    picture?: {
                        medium?: string;
                    };
                };
            };
        }>;
        /**
         * @name deleteComment
         *
         * @param id
         *
         */
        deleteComment: (id: string) => Promise<{
            comment?: {
                id?: number;
                content?: string;
                comment_type?: "System" | "User";
                relation_type?: "ExpenseComment";
                relation_id?: number;
                created_at?: string;
                deleted_at?: string | null;
                user?: {
                    id?: number;
                    first_name?: string;
                    last_name?: string;
                    picture?: {
                        medium?: string;
                    };
                };
            } & {
                comment_type?: unknown;
                content?: unknown;
                user?: {
                    id?: number;
                    first_name?: string;
                    last_name?: string;
                    picture?: {
                        medium?: string;
                    };
                };
            };
        }>;
    };
    readonly notifications: {
        /**
         * @name getNotifications
         *
         */
        getNotifications: (params: OperationQueryParams<getNotifications>) => Promise<{
            notifications?: {
                id?: number;
                type?: number;
                created_at?: string;
                created_by?: number;
                source?: {
                    type?: string;
                    id?: number;
                    url?: string | null;
                } | null;
                image_url?: string;
                image_shape?: "square" | "circle";
                content?: string;
            }[];
        }>;
    };
    readonly other: {
        /**
         * @name getCurrencies
         *
         */
        getCurrencies: () => Promise<{
            currencies?: {
                currency_code?: string;
                unit?: string;
            }[];
        }>;
        /**
         * @name getCategories
         *
         */
        getCategories: () => Promise<{
            categories?: ({
                id?: number;
                name?: string;
                icon?: string;
                icon_types?: {
                    slim?: {
                        small?: string;
                        large?: string;
                    };
                    square?: {
                        large?: string;
                        xlarge?: string;
                    };
                };
            } & {
                id?: unknown;
                name?: unknown;
                subcategories?: {
                    id?: number;
                    name?: string;
                    icon?: string;
                    icon_types?: {
                        slim?: {
                            small?: string;
                            large?: string;
                        };
                        square?: {
                            large?: string;
                            xlarge?: string;
                        };
                    };
                }[];
            })[];
        }>;
    };
}

declare type createComment = operations['createComment'];

declare type createExpense = operations['createExpense'];

declare type createFriend = operations['createFriend'];

declare type createFriends = operations['createFriends'];

declare type createGroup = operations['createGroup'];

/** Find first match of multiple keys */
declare type FilterKeys<Obj, Matchers> = Obj[keyof Obj & Matchers];

declare type getComments = operations['getComments'];

declare type getExpenses = operations['getExpenses'];

declare type getNotifications = operations['getNotifications'];

/** Resolve to `true` if request body is optional, else `false` */
declare type IsOperationRequestBodyOptional<T> = RequiredKeysOf<PickRequestBody<T>> extends never ? true : false;

/** Return any `[string]/[string]` media type (important because openapi-fetch allows any content response, not just JSON-like) */
declare type MediaType = `${string}/${string}`;

declare type NestedRecord = Record<string, Primitive>;

export declare class OAuth2User implements AuthClient {
    #private;
    protected token?: string;
    constructor(credentials: OAuthCredentials);
    get accessToken(): string | null;
    requestAccessToken(): Promise<UseAuthResponse>;
}

declare type OAuthCredentials = {
    /**
     * The consumer key obtained from the Splitwise dashboard.
     * Used for authenticating API requests via OAuth.
     */
    clientId: string;
    /**
     * The consumer secret obtained from the Splitwise dashboard.
     * Used in conjunction with the consumer key for OAuth authentication.
     */
    clientSecret: string;
};

declare type OperationQueryParams<T> = 'parameters' extends keyof T ? 'query' extends keyof T['parameters'] ? T['parameters']['query'] : never : never;

/** Return type of `requestBody` for an Operation Object */
declare type OperationRequestBody<T> = "requestBody" extends keyof T ? T["requestBody"] : never;

/** Return first `content` from a Request Object Mapping, allowing any media type */
declare type OperationRequestBodyContent<T> = FilterKeys<OperationRequestBodyMediaContent<T>, MediaType> extends never
? FilterKeys<NonNullable<OperationRequestBodyMediaContent<T>>, MediaType> | undefined
: FilterKeys<OperationRequestBodyMediaContent<T>, MediaType>;

/** Internal helper used in OperationRequestBodyContent */
declare type OperationRequestBodyMediaContent<T> = IsOperationRequestBodyOptional<T> extends true
? ResponseContent<NonNullable<OperationRequestBody<T>>> | undefined
: ResponseContent<OperationRequestBody<T>>;

declare interface operations {
    getCurrentUser: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description OK */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        user?: {
                            id?: number;
                            /** @example Ada */
                            first_name?: string;
                            /** @example Lovelace */
                            last_name?: string | null;
                            /** @example ada@example.com */
                            email?: string;
                            /** @enum {string} */
                            registration_status?: "confirmed" | "dummy" | "invited";
                            picture?: {
                                small?: string;
                                medium?: string;
                                large?: string;
                            };
                            /** @example false */
                            custom_picture?: boolean;
                        } & {
                            /**
                             * @description ISO 8601 date/time indicating the last time notifications were read
                             * @example 2017-06-02T20:21:57Z
                             */
                            notifications_read?: string;
                            /**
                             * @description Number of unread notifications since notifiations_read
                             * @example 12
                             */
                            notifications_count?: number;
                            /**
                             * @description User's notification preferences
                             * @example {
                             *       "added_as_friend": true
                             *     }
                             */
                            notifications?: {
                                [key: string]: boolean;
                            };
                            /** @example USD */
                            default_currency?: string;
                            /**
                             * @description ISO_639-1 2-letter locale code
                             * @example en
                             */
                            locale?: string;
                        };
                    };
                };
            };
            /** @description Invalid API key or OAuth access token */
            401: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        /** @example Invalid API request: you are not logged in */
                        error?: string;
                    };
                };
            };
        };
    };
    getUser: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: number;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description OK */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        user?: {
                            id?: number;
                            /** @example Ada */
                            first_name?: string;
                            /** @example Lovelace */
                            last_name?: string | null;
                            /** @example ada@example.com */
                            email?: string;
                            /** @enum {string} */
                            registration_status?: "confirmed" | "dummy" | "invited";
                            picture?: {
                                small?: string;
                                medium?: string;
                                large?: string;
                            };
                            /** @example false */
                            custom_picture?: boolean;
                        };
                    };
                };
            };
            /** @description Invalid API key or OAuth access token */
            401: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        /** @example Invalid API request: you are not logged in */
                        error?: string;
                    };
                };
            };
            /** @description Forbidden */
            403: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        errors?: {
                            base?: string[];
                        };
                    };
                };
            };
            /** @description Not Found */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        errors?: {
                            base?: string[];
                        };
                    };
                };
            };
        };
    };
    updateUser: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: number;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": {
                    first_name?: string;
                    last_name?: string;
                    email?: string;
                    password?: string;
                    locale?: string;
                    default_currency?: string;
                };
            };
        };
        responses: {
            /** @description OK */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        id?: number;
                        /** @example Ada */
                        first_name?: string;
                        /** @example Lovelace */
                        last_name?: string | null;
                        /** @example ada@example.com */
                        email?: string;
                        /** @enum {string} */
                        registration_status?: "confirmed" | "dummy" | "invited";
                        picture?: {
                            small?: string;
                            medium?: string;
                            large?: string;
                        };
                        /** @example false */
                        custom_picture?: boolean;
                    };
                };
            };
            /** @description Invalid API key or OAuth access token */
            401: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        /** @example Invalid API request: you are not logged in */
                        error?: string;
                    };
                };
            };
            /** @description Forbidden */
            403: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        errors?: {
                            base?: string[];
                        };
                    };
                };
            };
        };
    };
    getGroups: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description OK */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        groups?: {
                            /** @example 321 */
                            id?: number;
                            /** @example Housemates 2020 */
                            name?: string;
                            /**
                             * @description What is the group used for?
                             *
                             *     **Note**: It is recommended to use `home` in place of `house` or `apartment`.
                             *
                             * @example home
                             * @enum {string}
                             */
                            group_type?: "home" | "trip" | "couple" | "other" | "apartment" | "house";
                            /** Format: date-time */
                            updated_at?: string;
                            simplify_by_default?: boolean;
                            members?: ({
                                id?: number;
                                /** @example Ada */
                                first_name?: string;
                                /** @example Lovelace */
                                last_name?: string | null;
                                /** @example ada@example.com */
                                email?: string;
                                /** @enum {string} */
                                registration_status?: "confirmed" | "dummy" | "invited";
                                picture?: {
                                    small?: string;
                                    medium?: string;
                                    large?: string;
                                };
                                /** @example false */
                                custom_picture?: boolean;
                            } & {
                                balance?: {
                                    /** @example USD */
                                    currency_code?: string;
                                    /** @example -5.02 */
                                    amount?: string;
                                }[];
                            })[];
                            original_debts?: {
                                /**
                                 * @description User ID
                                 * @example 18523
                                 */
                                from?: number;
                                /**
                                 * @description User ID
                                 * @example 90261
                                 */
                                to?: number;
                                /** @example 414.5 */
                                amount?: string;
                                /** @example USD */
                                currency_code?: string;
                            }[];
                            simplified_debts?: {
                                /**
                                 * @description User ID
                                 * @example 18523
                                 */
                                from?: number;
                                /**
                                 * @description User ID
                                 * @example 90261
                                 */
                                to?: number;
                                /** @example 414.5 */
                                amount?: string;
                                /** @example USD */
                                currency_code?: string;
                            }[];
                            avatar?: {
                                /** @example null */
                                original?: string | null;
                                /** @example https://s3.amazonaws.com/splitwise/uploads/group/default_avatars/avatar-ruby2-house-1000px.png */
                                xxlarge?: string;
                                /** @example https://s3.amazonaws.com/splitwise/uploads/group/default_avatars/avatar-ruby2-house-500px.png */
                                xlarge?: string;
                                /** @example https://s3.amazonaws.com/splitwise/uploads/group/default_avatars/avatar-ruby2-house-200px.png */
                                large?: string;
                                /** @example https://s3.amazonaws.com/splitwise/uploads/group/default_avatars/avatar-ruby2-house-100px.png */
                                medium?: string;
                                /** @example https://s3.amazonaws.com/splitwise/uploads/group/default_avatars/avatar-ruby2-house-50px.png */
                                small?: string;
                            };
                            custom_avatar?: boolean;
                            cover_photo?: {
                                /** @example https://s3.amazonaws.com/splitwise/uploads/group/default_cover_photos/coverphoto-ruby-1000px.png */
                                xxlarge?: string;
                                /** @example https://s3.amazonaws.com/splitwise/uploads/group/default_cover_photos/coverphoto-ruby-500px.png */
                                xlarge?: string;
                            };
                            /**
                             * @description A link the user can send to a friend to join the group directly
                             * @example https://www.splitwise.com/join/abQwErTyuI+12
                             */
                            invite_link?: string;
                        }[];
                    };
                };
            };
            /** @description Invalid API key or OAuth access token */
            401: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        /** @example Invalid API request: you are not logged in */
                        error?: string;
                    };
                };
            };
        };
    };
    getGroup: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: number;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description OK */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        group?: {
                            /** @example 321 */
                            id?: number;
                            /** @example Housemates 2020 */
                            name?: string;
                            /**
                             * @description What is the group used for?
                             *
                             *     **Note**: It is recommended to use `home` in place of `house` or `apartment`.
                             *
                             * @example home
                             * @enum {string}
                             */
                            group_type?: "home" | "trip" | "couple" | "other" | "apartment" | "house";
                            /** Format: date-time */
                            updated_at?: string;
                            simplify_by_default?: boolean;
                            members?: ({
                                id?: number;
                                /** @example Ada */
                                first_name?: string;
                                /** @example Lovelace */
                                last_name?: string | null;
                                /** @example ada@example.com */
                                email?: string;
                                /** @enum {string} */
                                registration_status?: "confirmed" | "dummy" | "invited";
                                picture?: {
                                    small?: string;
                                    medium?: string;
                                    large?: string;
                                };
                                /** @example false */
                                custom_picture?: boolean;
                            } & {
                                balance?: {
                                    /** @example USD */
                                    currency_code?: string;
                                    /** @example -5.02 */
                                    amount?: string;
                                }[];
                            })[];
                            original_debts?: {
                                /**
                                 * @description User ID
                                 * @example 18523
                                 */
                                from?: number;
                                /**
                                 * @description User ID
                                 * @example 90261
                                 */
                                to?: number;
                                /** @example 414.5 */
                                amount?: string;
                                /** @example USD */
                                currency_code?: string;
                            }[];
                            simplified_debts?: {
                                /**
                                 * @description User ID
                                 * @example 18523
                                 */
                                from?: number;
                                /**
                                 * @description User ID
                                 * @example 90261
                                 */
                                to?: number;
                                /** @example 414.5 */
                                amount?: string;
                                /** @example USD */
                                currency_code?: string;
                            }[];
                            avatar?: {
                                /** @example null */
                                original?: string | null;
                                /** @example https://s3.amazonaws.com/splitwise/uploads/group/default_avatars/avatar-ruby2-house-1000px.png */
                                xxlarge?: string;
                                /** @example https://s3.amazonaws.com/splitwise/uploads/group/default_avatars/avatar-ruby2-house-500px.png */
                                xlarge?: string;
                                /** @example https://s3.amazonaws.com/splitwise/uploads/group/default_avatars/avatar-ruby2-house-200px.png */
                                large?: string;
                                /** @example https://s3.amazonaws.com/splitwise/uploads/group/default_avatars/avatar-ruby2-house-100px.png */
                                medium?: string;
                                /** @example https://s3.amazonaws.com/splitwise/uploads/group/default_avatars/avatar-ruby2-house-50px.png */
                                small?: string;
                            };
                            custom_avatar?: boolean;
                            cover_photo?: {
                                /** @example https://s3.amazonaws.com/splitwise/uploads/group/default_cover_photos/coverphoto-ruby-1000px.png */
                                xxlarge?: string;
                                /** @example https://s3.amazonaws.com/splitwise/uploads/group/default_cover_photos/coverphoto-ruby-500px.png */
                                xlarge?: string;
                            };
                            /**
                             * @description A link the user can send to a friend to join the group directly
                             * @example https://www.splitwise.com/join/abQwErTyuI+12
                             */
                            invite_link?: string;
                        };
                    };
                };
            };
            /** @description Invalid API key or OAuth access token */
            401: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        /** @example Invalid API request: you are not logged in */
                        error?: string;
                    };
                };
            };
            /** @description Forbidden */
            403: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        errors?: {
                            base?: string[];
                        };
                    };
                };
            };
            /** @description Not Found */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        errors?: {
                            base?: string[];
                        };
                    };
                };
            };
        };
    };
    createGroup: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": {
                    name: string;
                    /**
                     * @description What is the group used for?
                     *
                     *     **Note**: It is recommended to use `home` in place of `house` or `apartment`.
                     *
                     * @example home
                     * @enum {string}
                     */
                    group_type?: "home" | "trip" | "couple" | "other" | "apartment" | "house";
                    /** @description Turn on simplify debts? */
                    simplify_by_default?: boolean;
                } & {
                    [key: string]: string;
                };
            };
        };
        responses: {
            /** @description OK */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        group?: {
                            /** @example 321 */
                            id?: number;
                            /** @example Housemates 2020 */
                            name?: string;
                            /**
                             * @description What is the group used for?
                             *
                             *     **Note**: It is recommended to use `home` in place of `house` or `apartment`.
                             *
                             * @example home
                             * @enum {string}
                             */
                            group_type?: "home" | "trip" | "couple" | "other" | "apartment" | "house";
                            /** Format: date-time */
                            updated_at?: string;
                            simplify_by_default?: boolean;
                            members?: ({
                                id?: number;
                                /** @example Ada */
                                first_name?: string;
                                /** @example Lovelace */
                                last_name?: string | null;
                                /** @example ada@example.com */
                                email?: string;
                                /** @enum {string} */
                                registration_status?: "confirmed" | "dummy" | "invited";
                                picture?: {
                                    small?: string;
                                    medium?: string;
                                    large?: string;
                                };
                                /** @example false */
                                custom_picture?: boolean;
                            } & {
                                balance?: {
                                    /** @example USD */
                                    currency_code?: string;
                                    /** @example -5.02 */
                                    amount?: string;
                                }[];
                            })[];
                            original_debts?: {
                                /**
                                 * @description User ID
                                 * @example 18523
                                 */
                                from?: number;
                                /**
                                 * @description User ID
                                 * @example 90261
                                 */
                                to?: number;
                                /** @example 414.5 */
                                amount?: string;
                                /** @example USD */
                                currency_code?: string;
                            }[];
                            simplified_debts?: {
                                /**
                                 * @description User ID
                                 * @example 18523
                                 */
                                from?: number;
                                /**
                                 * @description User ID
                                 * @example 90261
                                 */
                                to?: number;
                                /** @example 414.5 */
                                amount?: string;
                                /** @example USD */
                                currency_code?: string;
                            }[];
                            avatar?: {
                                /** @example null */
                                original?: string | null;
                                /** @example https://s3.amazonaws.com/splitwise/uploads/group/default_avatars/avatar-ruby2-house-1000px.png */
                                xxlarge?: string;
                                /** @example https://s3.amazonaws.com/splitwise/uploads/group/default_avatars/avatar-ruby2-house-500px.png */
                                xlarge?: string;
                                /** @example https://s3.amazonaws.com/splitwise/uploads/group/default_avatars/avatar-ruby2-house-200px.png */
                                large?: string;
                                /** @example https://s3.amazonaws.com/splitwise/uploads/group/default_avatars/avatar-ruby2-house-100px.png */
                                medium?: string;
                                /** @example https://s3.amazonaws.com/splitwise/uploads/group/default_avatars/avatar-ruby2-house-50px.png */
                                small?: string;
                            };
                            custom_avatar?: boolean;
                            cover_photo?: {
                                /** @example https://s3.amazonaws.com/splitwise/uploads/group/default_cover_photos/coverphoto-ruby-1000px.png */
                                xxlarge?: string;
                                /** @example https://s3.amazonaws.com/splitwise/uploads/group/default_cover_photos/coverphoto-ruby-500px.png */
                                xlarge?: string;
                            };
                            /**
                             * @description A link the user can send to a friend to join the group directly
                             * @example https://www.splitwise.com/join/abQwErTyuI+12
                             */
                            invite_link?: string;
                        };
                    };
                };
            };
            /** @description Bad Request */
            400: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        errors?: {
                            base?: string[];
                        };
                    };
                };
            };
        };
    };
    deleteGroup: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: number;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description OK */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        success?: boolean;
                    };
                };
            };
            /** @description Invalid API key or OAuth access token */
            401: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        /** @example Invalid API request: you are not logged in */
                        error?: string;
                    };
                };
            };
            /** @description Forbidden */
            403: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        errors?: {
                            base?: string[];
                        };
                    };
                };
            };
            /** @description Not Found */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        errors?: {
                            base?: string[];
                        };
                    };
                };
            };
        };
    };
    unDeleteGroup: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: number;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description OK */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        success?: boolean;
                        errors?: string[];
                    };
                };
            };
            /** @description Invalid API key or OAuth access token */
            401: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        /** @example Invalid API request: you are not logged in */
                        error?: string;
                    };
                };
            };
            /** @description Forbidden */
            403: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        errors?: {
                            base?: string[];
                        };
                    };
                };
            };
        };
    };
    addUserToGroup: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": {
                    /** @example 49012 */
                    group_id?: number;
                    /** @example 7999632 */
                    user_id: number;
                } | {
                    /** @example 49012 */
                    group_id?: number;
                    /** @example Grace */
                    first_name: string;
                    /** @example Hopper */
                    last_name: string;
                    /** @example gracehopper@example.com */
                    email: string;
                };
            };
        };
        responses: {
            /** @description OK */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        success?: boolean;
                        user?: {
                            id?: number;
                            /** @example Ada */
                            first_name?: string;
                            /** @example Lovelace */
                            last_name?: string | null;
                            /** @example ada@example.com */
                            email?: string;
                            /** @enum {string} */
                            registration_status?: "confirmed" | "dummy" | "invited";
                            picture?: {
                                small?: string;
                                medium?: string;
                                large?: string;
                            };
                            /** @example false */
                            custom_picture?: boolean;
                        };
                        errors?: {
                            [key: string]: string[];
                        };
                    };
                };
            };
        };
    };
    removeUserFromGroup: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": {
                    /** @example 4012 */
                    group_id: number;
                    /** @example 940142 */
                    user_id: number;
                };
            };
        };
        responses: {
            /** @description OK */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        success?: boolean;
                        errors?: {
                            [key: string]: string[];
                        };
                    };
                };
            };
        };
    };
    getFriends: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description OK */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        friends?: (({
                            id?: number;
                            /** @example Ada */
                            first_name?: string;
                            /** @example Lovelace */
                            last_name?: string | null;
                            /** @example ada@example.com */
                            email?: string;
                            /** @enum {string} */
                            registration_status?: "confirmed" | "dummy" | "invited";
                            picture?: {
                                small?: string;
                                medium?: string;
                                large?: string;
                            };
                            /** @example false */
                            custom_picture?: boolean;
                        } & {
                            groups?: {
                                /** @example 571 */
                                group_id?: number;
                                balance?: {
                                    /** @example USD */
                                    currency_code?: string;
                                    /** @example 414.5 */
                                    amount?: string;
                                }[];
                            }[];
                            balance?: {
                                /** @example USD */
                                currency_code?: string;
                                /** @example 414.5 */
                                amount?: string;
                            }[];
                            /** Format: date-time */
                            updated_at?: string;
                        }) & unknown)[];
                    };
                };
            };
            /** @description Invalid API key or OAuth access token */
            401: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        /** @example Invalid API request: you are not logged in */
                        error?: string;
                    };
                };
            };
        };
    };
    getFriend: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description User ID of the friend */
                id: number;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description OK */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        friend?: {
                            id?: number;
                            /** @example Ada */
                            first_name?: string;
                            /** @example Lovelace */
                            last_name?: string | null;
                            /** @example ada@example.com */
                            email?: string;
                            /** @enum {string} */
                            registration_status?: "confirmed" | "dummy" | "invited";
                            picture?: {
                                small?: string;
                                medium?: string;
                                large?: string;
                            };
                            /** @example false */
                            custom_picture?: boolean;
                        } & {
                            groups?: {
                                /** @example 571 */
                                group_id?: number;
                                balance?: {
                                    /** @example USD */
                                    currency_code?: string;
                                    /** @example 414.5 */
                                    amount?: string;
                                }[];
                            }[];
                            balance?: {
                                /** @example USD */
                                currency_code?: string;
                                /** @example 414.5 */
                                amount?: string;
                            }[];
                            /** Format: date-time */
                            updated_at?: string;
                        };
                    };
                };
            };
            /** @description Invalid API key or OAuth access token */
            401: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        /** @example Invalid API request: you are not logged in */
                        error?: string;
                    };
                };
            };
            /** @description Forbidden */
            403: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        errors?: {
                            base?: string[];
                        };
                    };
                };
            };
            /** @description Not Found */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        errors?: {
                            base?: string[];
                        };
                    };
                };
            };
        };
    };
    createFriend: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": {
                    /** @example ada@example.com */
                    user_email?: string;
                    /** @example Ada */
                    user_first_name?: string;
                    /** @example Lovelace */
                    user_last_name?: string;
                };
            };
        };
        responses: {
            /** @description OK */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        friend?: {
                            id?: number;
                            /** @example Ada */
                            first_name?: string;
                            /** @example Lovelace */
                            last_name?: string | null;
                            /** @example ada@example.com */
                            email?: string;
                            /** @enum {string} */
                            registration_status?: "confirmed" | "dummy" | "invited";
                            picture?: {
                                small?: string;
                                medium?: string;
                                large?: string;
                            };
                            /** @example false */
                            custom_picture?: boolean;
                        } & {
                            groups?: {
                                /** @example 571 */
                                group_id?: number;
                                balance?: {
                                    /** @example USD */
                                    currency_code?: string;
                                    /** @example 414.5 */
                                    amount?: string;
                                }[];
                            }[];
                            balance?: {
                                /** @example USD */
                                currency_code?: string;
                                /** @example 414.5 */
                                amount?: string;
                            }[];
                            /** Format: date-time */
                            updated_at?: string;
                        };
                    };
                };
            };
            /** @description Invalid API key or OAuth access token */
            401: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        /** @example Invalid API request: you are not logged in */
                        error?: string;
                    };
                };
            };
        };
    };
    createFriends: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody: {
            content: {
                /** @example {
                 *       "friends__0__first_name": "Alan",
                 *       "friends__0__last_name": "Turing",
                 *       "friends__0__email": "alan@example.org",
                 *       "friends__1__email": "existing_user@example.com"
                 *     } */
                "application/json": {
                    [key: string]: string;
                };
            };
        };
        responses: {
            /** @description OK */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        users?: (({
                            id?: number;
                            /** @example Ada */
                            first_name?: string;
                            /** @example Lovelace */
                            last_name?: string | null;
                            /** @example ada@example.com */
                            email?: string;
                            /** @enum {string} */
                            registration_status?: "confirmed" | "dummy" | "invited";
                            picture?: {
                                small?: string;
                                medium?: string;
                                large?: string;
                            };
                            /** @example false */
                            custom_picture?: boolean;
                        } & {
                            groups?: {
                                /** @example 571 */
                                group_id?: number;
                                balance?: {
                                    /** @example USD */
                                    currency_code?: string;
                                    /** @example 414.5 */
                                    amount?: string;
                                }[];
                            }[];
                            balance?: {
                                /** @example USD */
                                currency_code?: string;
                                /** @example 414.5 */
                                amount?: string;
                            }[];
                            /** Format: date-time */
                            updated_at?: string;
                        }) & unknown)[];
                        errors?: {
                            [key: string]: string[];
                        };
                    };
                };
            };
            /** @description Bad Request */
            400: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        /** @example [] */
                        users?: (({
                            id?: number;
                            /** @example Ada */
                            first_name?: string;
                            /** @example Lovelace */
                            last_name?: string | null;
                            /** @example ada@example.com */
                            email?: string;
                            /** @enum {string} */
                            registration_status?: "confirmed" | "dummy" | "invited";
                            picture?: {
                                small?: string;
                                medium?: string;
                                large?: string;
                            };
                            /** @example false */
                            custom_picture?: boolean;
                        } & {
                            groups?: {
                                /** @example 571 */
                                group_id?: number;
                                balance?: {
                                    /** @example USD */
                                    currency_code?: string;
                                    /** @example 414.5 */
                                    amount?: string;
                                }[];
                            }[];
                            balance?: {
                                /** @example USD */
                                currency_code?: string;
                                /** @example 414.5 */
                                amount?: string;
                            }[];
                            /** Format: date-time */
                            updated_at?: string;
                        }) & unknown)[];
                        /** @example {
                         *       "base": [
                         *         "Please supply a name for this user"
                         *       ]
                         *     } */
                        errors?: {
                            [key: string]: string[];
                        };
                    };
                };
            };
            /** @description Invalid API key or OAuth access token */
            401: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        /** @example Invalid API request: you are not logged in */
                        error?: string;
                    };
                };
            };
        };
    };
    deleteFriend: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description User ID of the friend */
                id: number;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description OK */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        success?: boolean;
                        errors?: {
                            [key: string]: string[];
                        };
                    };
                };
            };
            /** @description Invalid API key or OAuth access token */
            401: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        /** @example Invalid API request: you are not logged in */
                        error?: string;
                    };
                };
            };
            /** @description Forbidden */
            403: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        errors?: {
                            base?: string[];
                        };
                    };
                };
            };
            /** @description Not Found */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        errors?: {
                            base?: string[];
                        };
                    };
                };
            };
        };
    };
    getCurrencies: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description OK */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        currencies?: {
                            /** @example BRL */
                            currency_code?: string;
                            /** @example R$ */
                            unit?: string;
                        }[];
                    };
                };
            };
        };
    };
    getExpense: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: number;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description OK */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        expense?: {
                            /**
                             * @description A string representation of a decimal value, limited to 2 decimal places
                             * @example 25
                             */
                            cost?: string;
                            /**
                             * @description A short description of the expense
                             * @example Grocery run
                             */
                            description?: string;
                            /** @description Also known as "notes." */
                            details?: string | null;
                            /**
                             * Format: date-time
                             * @description The date and time the expense took place. May differ from `created_at`
                             * @example 2012-05-02T13:00:00Z
                             */
                            date?: string;
                            /** @enum {string} */
                            repeat_interval?: "never" | "weekly" | "fortnightly" | "monthly" | "yearly";
                            /**
                             * @description A currency code. Must be in the list from `get_currencies`
                             * @example USD
                             */
                            currency_code?: string;
                            /**
                             * @description A category id from `get_categories`
                             * @example 15
                             */
                            category_id?: number;
                        } & {
                            /**
                             * Format: int64
                             * @example 51023
                             */
                            id?: number;
                            /**
                             * @description Null if the expense is not associated with a group.
                             * @example 391
                             */
                            group_id?: number | null;
                            /**
                             * @description Null if the expense is not associated with a friendship.
                             * @example 4818
                             */
                            friendship_id?: number | null;
                            /** @example 491030 */
                            expense_bundle_id?: number | null;
                            /** @example Brunch */
                            description?: string;
                            /** @description Whether the expense recurs automatically */
                            repeats?: boolean;
                            /** @enum {string} */
                            repeat_interval?: "never" | "weekly" | "fortnightly" | "monthly" | "yearly";
                            /** @description Whether a reminder will be sent to involved users in advance of the next occurrence of a recurring expense.
                             *     Only applicable if the expense recurs.
                             *      */
                            email_reminder?: boolean;
                            /**
                             * @description Number of days in advance to remind involved users about the next occurrence of a new expense.
                             *     Only applicable if the expense recurs.
                             *
                             * @enum {integer|null}
                             */
                            email_reminder_in_advance?: null | -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 14;
                            /** @description The date of the next occurrence of a recurring expense. Only applicable if the expense recurs. */
                            next_repeat?: string | null;
                            /** @description Also known as "notes." */
                            details?: string | null;
                            comments_count?: number;
                            /** @description Whether this was a payment between users */
                            payment?: boolean;
                            /** @description If a payment was made via an integrated third party service, whether it was confirmed by that service. */
                            transaction_confirmed?: boolean;
                            /** @example 25.0 */
                            cost?: string;
                            /** @example USD */
                            currency_code?: string;
                            repayments?: {
                                /**
                                 * @description ID of the owing user
                                 * @example 6788709
                                 */
                                from?: number;
                                /**
                                 * @description ID of the owed user
                                 * @example 270896089
                                 */
                                to?: number;
                                /** @example 25.0 */
                                amount?: string;
                            }[];
                            /**
                             * Format: date-time
                             * @description The date and time the expense took place. May differ from `created_at`
                             * @example 2012-05-02T13:00:00Z
                             */
                            date?: string;
                            /**
                             * Format: date-time
                             * @description The date and time the expense was created on Splitwise
                             * @example 2012-07-27T06:17:09Z
                             */
                            created_at?: string;
                            created_by?: {
                                id?: number;
                                /** @example Ada */
                                first_name?: string;
                                /** @example Lovelace */
                                last_name?: string | null;
                                /** @example ada@example.com */
                                email?: string;
                                /** @enum {string} */
                                registration_status?: "confirmed" | "dummy" | "invited";
                                picture?: {
                                    small?: string;
                                    medium?: string;
                                    large?: string;
                                };
                                /** @example false */
                                custom_picture?: boolean;
                            } & unknown;
                            /**
                             * Format: date-time
                             * @description The last time the expense was updated.
                             * @example 2012-12-23T05:47:02Z
                             */
                            updated_at?: string;
                            updated_by?: {
                                id?: number;
                                /** @example Ada */
                                first_name?: string;
                                /** @example Lovelace */
                                last_name?: string | null;
                                /** @example ada@example.com */
                                email?: string;
                                /** @enum {string} */
                                registration_status?: "confirmed" | "dummy" | "invited";
                                picture?: {
                                    small?: string;
                                    medium?: string;
                                    large?: string;
                                };
                                /** @example false */
                                custom_picture?: boolean;
                            } & unknown;
                            /**
                             * Format: date-time
                             * @description If the expense was deleted, when it was deleted.
                             * @example 2012-12-23T05:47:02Z
                             */
                            deleted_at?: string | null;
                            deleted_by?: {
                                id?: number;
                                /** @example Ada */
                                first_name?: string;
                                /** @example Lovelace */
                                last_name?: string | null;
                                /** @example ada@example.com */
                                email?: string;
                                /** @enum {string} */
                                registration_status?: "confirmed" | "dummy" | "invited";
                                picture?: {
                                    small?: string;
                                    medium?: string;
                                    large?: string;
                                };
                                /** @example false */
                                custom_picture?: boolean;
                            } & unknown;
                            category?: {
                                /** @example 5 */
                                id?: number;
                                /**
                                 * @description Translated to the current user's locale
                                 * @example Electricity
                                 */
                                name?: string;
                            };
                            receipt?: {
                                /** @example https://splitwise.s3.amazonaws.com/uploads/expense/receipt/3678899/large_95f8ecd1-536b-44ce-ad9b-0a9498bb7cf0.png */
                                large?: string | null;
                                /** @example https://splitwise.s3.amazonaws.com/uploads/expense/receipt/3678899/95f8ecd1-536b-44ce-ad9b-0a9498bb7cf0.png */
                                original?: string | null;
                            };
                            users?: {
                                user?: {
                                    /** @example 491923 */
                                    id?: number;
                                    /** @example Jane */
                                    first_name?: string;
                                    /** @example Doe */
                                    last_name?: string;
                                    picture?: {
                                        /** @example image_url */
                                        medium?: string;
                                    };
                                };
                                /** @example 491923 */
                                user_id?: number;
                                /** @example 8.99 */
                                paid_share?: string;
                                /** @example 4.5 */
                                owed_share?: string;
                                /** @example 4.49 */
                                net_balance?: string;
                            }[];
                            comments?: {
                                /** @example 79800950 */
                                id?: number;
                                /** @example John D. updated this transaction: - The cost changed from $6.99 to $8.99 */
                                content?: string;
                                /** @enum {string} */
                                comment_type?: "System" | "User";
                                /** @enum {string} */
                                relation_type?: "ExpenseComment";
                                /**
                                 * @description ID of the subject of the comment
                                 * @example 855870953
                                 */
                                relation_id?: number;
                                /** Format: date-time */
                                created_at?: string;
                                /** Format: date-time */
                                deleted_at?: string | null;
                                user?: {
                                    /** @example 491923 */
                                    id?: number;
                                    /** @example Jane */
                                    first_name?: string;
                                    /** @example Doe */
                                    last_name?: string;
                                    picture?: {
                                        /** @example image_url */
                                        medium?: string;
                                    };
                                };
                            }[];
                        };
                    };
                };
            };
            /** @description Invalid API key or OAuth access token */
            401: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        /** @example Invalid API request: you are not logged in */
                        error?: string;
                    };
                };
            };
            /** @description Forbidden */
            403: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        errors?: {
                            base?: string[];
                        };
                    };
                };
            };
            /** @description Not Found */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        errors?: {
                            base?: string[];
                        };
                    };
                };
            };
        };
    };
    getExpenses: {
        parameters: {
            query?: {
                /** @description If provided, only expenses in that group will be returned, and `friend_id` will be ignored. */
                group_id?: number;
                /** @description ID of another user. If provided, only expenses between the current and provided user will be returned. */
                friend_id?: number;
                dated_after?: string;
                dated_before?: string;
                updated_after?: string;
                updated_before?: string;
                limit?: number;
                offset?: number;
            };
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description OK */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        expenses?: ({
                            /**
                             * @description A string representation of a decimal value, limited to 2 decimal places
                             * @example 25
                             */
                            cost?: string;
                            /**
                             * @description A short description of the expense
                             * @example Grocery run
                             */
                            description?: string;
                            /** @description Also known as "notes." */
                            details?: string | null;
                            /**
                             * Format: date-time
                             * @description The date and time the expense took place. May differ from `created_at`
                             * @example 2012-05-02T13:00:00Z
                             */
                            date?: string;
                            /** @enum {string} */
                            repeat_interval?: "never" | "weekly" | "fortnightly" | "monthly" | "yearly";
                            /**
                             * @description A currency code. Must be in the list from `get_currencies`
                             * @example USD
                             */
                            currency_code?: string;
                            /**
                             * @description A category id from `get_categories`
                             * @example 15
                             */
                            category_id?: number;
                        } & {
                            /**
                             * Format: int64
                             * @example 51023
                             */
                            id?: number;
                            /**
                             * @description Null if the expense is not associated with a group.
                             * @example 391
                             */
                            group_id?: number | null;
                            /**
                             * @description Null if the expense is not associated with a friendship.
                             * @example 4818
                             */
                            friendship_id?: number | null;
                            /** @example 491030 */
                            expense_bundle_id?: number | null;
                            /** @example Brunch */
                            description?: string;
                            /** @description Whether the expense recurs automatically */
                            repeats?: boolean;
                            /** @enum {string} */
                            repeat_interval?: "never" | "weekly" | "fortnightly" | "monthly" | "yearly";
                            /** @description Whether a reminder will be sent to involved users in advance of the next occurrence of a recurring expense.
                             *     Only applicable if the expense recurs.
                             *      */
                            email_reminder?: boolean;
                            /**
                             * @description Number of days in advance to remind involved users about the next occurrence of a new expense.
                             *     Only applicable if the expense recurs.
                             *
                             * @enum {integer|null}
                             */
                            email_reminder_in_advance?: null | -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 14;
                            /** @description The date of the next occurrence of a recurring expense. Only applicable if the expense recurs. */
                            next_repeat?: string | null;
                            /** @description Also known as "notes." */
                            details?: string | null;
                            comments_count?: number;
                            /** @description Whether this was a payment between users */
                            payment?: boolean;
                            /** @description If a payment was made via an integrated third party service, whether it was confirmed by that service. */
                            transaction_confirmed?: boolean;
                            /** @example 25.0 */
                            cost?: string;
                            /** @example USD */
                            currency_code?: string;
                            repayments?: {
                                /**
                                 * @description ID of the owing user
                                 * @example 6788709
                                 */
                                from?: number;
                                /**
                                 * @description ID of the owed user
                                 * @example 270896089
                                 */
                                to?: number;
                                /** @example 25.0 */
                                amount?: string;
                            }[];
                            /**
                             * Format: date-time
                             * @description The date and time the expense took place. May differ from `created_at`
                             * @example 2012-05-02T13:00:00Z
                             */
                            date?: string;
                            /**
                             * Format: date-time
                             * @description The date and time the expense was created on Splitwise
                             * @example 2012-07-27T06:17:09Z
                             */
                            created_at?: string;
                            created_by?: {
                                id?: number;
                                /** @example Ada */
                                first_name?: string;
                                /** @example Lovelace */
                                last_name?: string | null;
                                /** @example ada@example.com */
                                email?: string;
                                /** @enum {string} */
                                registration_status?: "confirmed" | "dummy" | "invited";
                                picture?: {
                                    small?: string;
                                    medium?: string;
                                    large?: string;
                                };
                                /** @example false */
                                custom_picture?: boolean;
                            } & unknown;
                            /**
                             * Format: date-time
                             * @description The last time the expense was updated.
                             * @example 2012-12-23T05:47:02Z
                             */
                            updated_at?: string;
                            updated_by?: {
                                id?: number;
                                /** @example Ada */
                                first_name?: string;
                                /** @example Lovelace */
                                last_name?: string | null;
                                /** @example ada@example.com */
                                email?: string;
                                /** @enum {string} */
                                registration_status?: "confirmed" | "dummy" | "invited";
                                picture?: {
                                    small?: string;
                                    medium?: string;
                                    large?: string;
                                };
                                /** @example false */
                                custom_picture?: boolean;
                            } & unknown;
                            /**
                             * Format: date-time
                             * @description If the expense was deleted, when it was deleted.
                             * @example 2012-12-23T05:47:02Z
                             */
                            deleted_at?: string | null;
                            deleted_by?: {
                                id?: number;
                                /** @example Ada */
                                first_name?: string;
                                /** @example Lovelace */
                                last_name?: string | null;
                                /** @example ada@example.com */
                                email?: string;
                                /** @enum {string} */
                                registration_status?: "confirmed" | "dummy" | "invited";
                                picture?: {
                                    small?: string;
                                    medium?: string;
                                    large?: string;
                                };
                                /** @example false */
                                custom_picture?: boolean;
                            } & unknown;
                            category?: {
                                /** @example 5 */
                                id?: number;
                                /**
                                 * @description Translated to the current user's locale
                                 * @example Electricity
                                 */
                                name?: string;
                            };
                            receipt?: {
                                /** @example https://splitwise.s3.amazonaws.com/uploads/expense/receipt/3678899/large_95f8ecd1-536b-44ce-ad9b-0a9498bb7cf0.png */
                                large?: string | null;
                                /** @example https://splitwise.s3.amazonaws.com/uploads/expense/receipt/3678899/95f8ecd1-536b-44ce-ad9b-0a9498bb7cf0.png */
                                original?: string | null;
                            };
                            users?: {
                                user?: {
                                    /** @example 491923 */
                                    id?: number;
                                    /** @example Jane */
                                    first_name?: string;
                                    /** @example Doe */
                                    last_name?: string;
                                    picture?: {
                                        /** @example image_url */
                                        medium?: string;
                                    };
                                };
                                /** @example 491923 */
                                user_id?: number;
                                /** @example 8.99 */
                                paid_share?: string;
                                /** @example 4.5 */
                                owed_share?: string;
                                /** @example 4.49 */
                                net_balance?: string;
                            }[];
                            comments?: {
                                /** @example 79800950 */
                                id?: number;
                                /** @example John D. updated this transaction: - The cost changed from $6.99 to $8.99 */
                                content?: string;
                                /** @enum {string} */
                                comment_type?: "System" | "User";
                                /** @enum {string} */
                                relation_type?: "ExpenseComment";
                                /**
                                 * @description ID of the subject of the comment
                                 * @example 855870953
                                 */
                                relation_id?: number;
                                /** Format: date-time */
                                created_at?: string;
                                /** Format: date-time */
                                deleted_at?: string | null;
                                user?: {
                                    /** @example 491923 */
                                    id?: number;
                                    /** @example Jane */
                                    first_name?: string;
                                    /** @example Doe */
                                    last_name?: string;
                                    picture?: {
                                        /** @example image_url */
                                        medium?: string;
                                    };
                                };
                            }[];
                        })[];
                    };
                };
            };
            /** @description Invalid API key or OAuth access token */
            401: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        /** @example Invalid API request: you are not logged in */
                        error?: string;
                    };
                };
            };
            /** @description Forbidden */
            403: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        errors?: {
                            base?: string[];
                        };
                    };
                };
            };
            /** @description Not Found */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        errors?: {
                            base?: string[];
                        };
                    };
                };
            };
        };
    };
    createExpense: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": ({
                    /**
                     * @description A string representation of a decimal value, limited to 2 decimal places
                     * @example 25
                     */
                    cost?: string;
                    /**
                     * @description A short description of the expense
                     * @example Grocery run
                     */
                    description?: string;
                    /** @description Also known as "notes." */
                    details?: string | null;
                    /**
                     * Format: date-time
                     * @description The date and time the expense took place. May differ from `created_at`
                     * @example 2012-05-02T13:00:00Z
                     */
                    date?: string;
                    /** @enum {string} */
                    repeat_interval?: "never" | "weekly" | "fortnightly" | "monthly" | "yearly";
                    /**
                     * @description A currency code. Must be in the list from `get_currencies`
                     * @example USD
                     */
                    currency_code?: string;
                    /**
                     * @description A category id from `get_categories`
                     * @example 15
                     */
                    category_id?: number;
                } & {
                    /** @description The group to put this expense in. */
                    group_id?: number;
                    /** @enum {boolean} */
                    split_equally?: true;
                } & unknown) | ({
                    /**
                     * @description A string representation of a decimal value, limited to 2 decimal places
                     * @example 25
                     */
                    cost?: string;
                    /**
                     * @description A short description of the expense
                     * @example Grocery run
                     */
                    description?: string;
                    /** @description Also known as "notes." */
                    details?: string | null;
                    /**
                     * Format: date-time
                     * @description The date and time the expense took place. May differ from `created_at`
                     * @example 2012-05-02T13:00:00Z
                     */
                    date?: string;
                    /** @enum {string} */
                    repeat_interval?: "never" | "weekly" | "fortnightly" | "monthly" | "yearly";
                    /**
                     * @description A currency code. Must be in the list from `get_currencies`
                     * @example USD
                     */
                    currency_code?: string;
                    /**
                     * @description A category id from `get_categories`
                     * @example 15
                     */
                    category_id?: number;
                } & ({
                    /** @description The group to put this expense in, or `0` to create an expense outside of a group. */
                    group_id?: number;
                    /** @example 54123 */
                    users__0__user_id?: number;
                    /**
                     * @description Decimal amount as a string with 2 decimal places. The amount this user paid for the expense
                     * @example 25
                     */
                    users__0__paid_share?: string;
                    /**
                     * @description Decimal amount as a string with 2 decimal places. The amount this user owes for the expense
                     * @example 13.55
                     */
                    users__0__owed_share?: string;
                    /** @example Neu */
                    users__1__first_name?: string;
                    /** @example Yewzer */
                    users__1__last_name?: string;
                    /** @example neuyewxyz@example.com */
                    users__1__email?: string;
                    /**
                     * @description Decimal amount as a string with 2 decimal places. The amount this user paid for the expense
                     * @example 0
                     */
                    users__1__paid_share?: string;
                    /**
                     * @description Decimal amount as a string with 2 decimal places. The amount this user owes for the expense
                     * @example 11.45
                     */
                    users__1__owed_share?: string;
                } & {
                    [key: string]: string;
                }) & unknown);
            };
        };
        responses: {
            /** @description OK */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        expenses?: ({
                            /**
                             * @description A string representation of a decimal value, limited to 2 decimal places
                             * @example 25
                             */
                            cost?: string;
                            /**
                             * @description A short description of the expense
                             * @example Grocery run
                             */
                            description?: string;
                            /** @description Also known as "notes." */
                            details?: string | null;
                            /**
                             * Format: date-time
                             * @description The date and time the expense took place. May differ from `created_at`
                             * @example 2012-05-02T13:00:00Z
                             */
                            date?: string;
                            /** @enum {string} */
                            repeat_interval?: "never" | "weekly" | "fortnightly" | "monthly" | "yearly";
                            /**
                             * @description A currency code. Must be in the list from `get_currencies`
                             * @example USD
                             */
                            currency_code?: string;
                            /**
                             * @description A category id from `get_categories`
                             * @example 15
                             */
                            category_id?: number;
                        } & {
                            /**
                             * Format: int64
                             * @example 51023
                             */
                            id?: number;
                            /**
                             * @description Null if the expense is not associated with a group.
                             * @example 391
                             */
                            group_id?: number | null;
                            /**
                             * @description Null if the expense is not associated with a friendship.
                             * @example 4818
                             */
                            friendship_id?: number | null;
                            /** @example 491030 */
                            expense_bundle_id?: number | null;
                            /** @example Brunch */
                            description?: string;
                            /** @description Whether the expense recurs automatically */
                            repeats?: boolean;
                            /** @enum {string} */
                            repeat_interval?: "never" | "weekly" | "fortnightly" | "monthly" | "yearly";
                            /** @description Whether a reminder will be sent to involved users in advance of the next occurrence of a recurring expense.
                             *     Only applicable if the expense recurs.
                             *      */
                            email_reminder?: boolean;
                            /**
                             * @description Number of days in advance to remind involved users about the next occurrence of a new expense.
                             *     Only applicable if the expense recurs.
                             *
                             * @enum {integer|null}
                             */
                            email_reminder_in_advance?: null | -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 14;
                            /** @description The date of the next occurrence of a recurring expense. Only applicable if the expense recurs. */
                            next_repeat?: string | null;
                            /** @description Also known as "notes." */
                            details?: string | null;
                            comments_count?: number;
                            /** @description Whether this was a payment between users */
                            payment?: boolean;
                            /** @description If a payment was made via an integrated third party service, whether it was confirmed by that service. */
                            transaction_confirmed?: boolean;
                            /** @example 25.0 */
                            cost?: string;
                            /** @example USD */
                            currency_code?: string;
                            repayments?: {
                                /**
                                 * @description ID of the owing user
                                 * @example 6788709
                                 */
                                from?: number;
                                /**
                                 * @description ID of the owed user
                                 * @example 270896089
                                 */
                                to?: number;
                                /** @example 25.0 */
                                amount?: string;
                            }[];
                            /**
                             * Format: date-time
                             * @description The date and time the expense took place. May differ from `created_at`
                             * @example 2012-05-02T13:00:00Z
                             */
                            date?: string;
                            /**
                             * Format: date-time
                             * @description The date and time the expense was created on Splitwise
                             * @example 2012-07-27T06:17:09Z
                             */
                            created_at?: string;
                            created_by?: {
                                id?: number;
                                /** @example Ada */
                                first_name?: string;
                                /** @example Lovelace */
                                last_name?: string | null;
                                /** @example ada@example.com */
                                email?: string;
                                /** @enum {string} */
                                registration_status?: "confirmed" | "dummy" | "invited";
                                picture?: {
                                    small?: string;
                                    medium?: string;
                                    large?: string;
                                };
                                /** @example false */
                                custom_picture?: boolean;
                            } & unknown;
                            /**
                             * Format: date-time
                             * @description The last time the expense was updated.
                             * @example 2012-12-23T05:47:02Z
                             */
                            updated_at?: string;
                            updated_by?: {
                                id?: number;
                                /** @example Ada */
                                first_name?: string;
                                /** @example Lovelace */
                                last_name?: string | null;
                                /** @example ada@example.com */
                                email?: string;
                                /** @enum {string} */
                                registration_status?: "confirmed" | "dummy" | "invited";
                                picture?: {
                                    small?: string;
                                    medium?: string;
                                    large?: string;
                                };
                                /** @example false */
                                custom_picture?: boolean;
                            } & unknown;
                            /**
                             * Format: date-time
                             * @description If the expense was deleted, when it was deleted.
                             * @example 2012-12-23T05:47:02Z
                             */
                            deleted_at?: string | null;
                            deleted_by?: {
                                id?: number;
                                /** @example Ada */
                                first_name?: string;
                                /** @example Lovelace */
                                last_name?: string | null;
                                /** @example ada@example.com */
                                email?: string;
                                /** @enum {string} */
                                registration_status?: "confirmed" | "dummy" | "invited";
                                picture?: {
                                    small?: string;
                                    medium?: string;
                                    large?: string;
                                };
                                /** @example false */
                                custom_picture?: boolean;
                            } & unknown;
                            category?: {
                                /** @example 5 */
                                id?: number;
                                /**
                                 * @description Translated to the current user's locale
                                 * @example Electricity
                                 */
                                name?: string;
                            };
                            receipt?: {
                                /** @example https://splitwise.s3.amazonaws.com/uploads/expense/receipt/3678899/large_95f8ecd1-536b-44ce-ad9b-0a9498bb7cf0.png */
                                large?: string | null;
                                /** @example https://splitwise.s3.amazonaws.com/uploads/expense/receipt/3678899/95f8ecd1-536b-44ce-ad9b-0a9498bb7cf0.png */
                                original?: string | null;
                            };
                            users?: {
                                user?: {
                                    /** @example 491923 */
                                    id?: number;
                                    /** @example Jane */
                                    first_name?: string;
                                    /** @example Doe */
                                    last_name?: string;
                                    picture?: {
                                        /** @example image_url */
                                        medium?: string;
                                    };
                                };
                                /** @example 491923 */
                                user_id?: number;
                                /** @example 8.99 */
                                paid_share?: string;
                                /** @example 4.5 */
                                owed_share?: string;
                                /** @example 4.49 */
                                net_balance?: string;
                            }[];
                            comments?: {
                                /** @example 79800950 */
                                id?: number;
                                /** @example John D. updated this transaction: - The cost changed from $6.99 to $8.99 */
                                content?: string;
                                /** @enum {string} */
                                comment_type?: "System" | "User";
                                /** @enum {string} */
                                relation_type?: "ExpenseComment";
                                /**
                                 * @description ID of the subject of the comment
                                 * @example 855870953
                                 */
                                relation_id?: number;
                                /** Format: date-time */
                                created_at?: string;
                                /** Format: date-time */
                                deleted_at?: string | null;
                                user?: {
                                    /** @example 491923 */
                                    id?: number;
                                    /** @example Jane */
                                    first_name?: string;
                                    /** @example Doe */
                                    last_name?: string;
                                    picture?: {
                                        /** @example image_url */
                                        medium?: string;
                                    };
                                };
                            }[];
                        })[];
                        errors?: Record<string, never>;
                    };
                };
            };
            /** @description Bad Request */
            400: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        errors?: {
                            base?: string[];
                        };
                    };
                };
            };
            /** @description Invalid API key or OAuth access token */
            401: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        /** @example Invalid API request: you are not logged in */
                        error?: string;
                    };
                };
            };
            /** @description Forbidden */
            403: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        errors?: {
                            base?: string[];
                        };
                    };
                };
            };
        };
    };
    updateExpense: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the expense to update */
                id: number;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": {
                    /**
                     * @description A string representation of a decimal value, limited to 2 decimal places
                     * @example 25
                     */
                    cost?: string;
                    /**
                     * @description A short description of the expense
                     * @example Grocery run
                     */
                    description?: string;
                    /** @description Also known as "notes." */
                    details?: string | null;
                    /**
                     * Format: date-time
                     * @description The date and time the expense took place. May differ from `created_at`
                     * @example 2012-05-02T13:00:00Z
                     */
                    date?: string;
                    /** @enum {string} */
                    repeat_interval?: "never" | "weekly" | "fortnightly" | "monthly" | "yearly";
                    /**
                     * @description A currency code. Must be in the list from `get_currencies`
                     * @example USD
                     */
                    currency_code?: string;
                    /**
                     * @description A category id from `get_categories`
                     * @example 15
                     */
                    category_id?: number;
                } & ({
                    /** @description The group to put this expense in, or `0` to create an expense outside of a group. */
                    group_id?: number;
                    /** @example 54123 */
                    users__0__user_id?: number;
                    /**
                     * @description Decimal amount as a string with 2 decimal places. The amount this user paid for the expense
                     * @example 25
                     */
                    users__0__paid_share?: string;
                    /**
                     * @description Decimal amount as a string with 2 decimal places. The amount this user owes for the expense
                     * @example 13.55
                     */
                    users__0__owed_share?: string;
                    /** @example Neu */
                    users__1__first_name?: string;
                    /** @example Yewzer */
                    users__1__last_name?: string;
                    /** @example neuyewxyz@example.com */
                    users__1__email?: string;
                    /**
                     * @description Decimal amount as a string with 2 decimal places. The amount this user paid for the expense
                     * @example 0
                     */
                    users__1__paid_share?: string;
                    /**
                     * @description Decimal amount as a string with 2 decimal places. The amount this user owes for the expense
                     * @example 11.45
                     */
                    users__1__owed_share?: string;
                } & {
                    [key: string]: string;
                }) & unknown;
            };
        };
        responses: {
            /** @description OK */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        expenses?: ({
                            /**
                             * @description A string representation of a decimal value, limited to 2 decimal places
                             * @example 25
                             */
                            cost?: string;
                            /**
                             * @description A short description of the expense
                             * @example Grocery run
                             */
                            description?: string;
                            /** @description Also known as "notes." */
                            details?: string | null;
                            /**
                             * Format: date-time
                             * @description The date and time the expense took place. May differ from `created_at`
                             * @example 2012-05-02T13:00:00Z
                             */
                            date?: string;
                            /** @enum {string} */
                            repeat_interval?: "never" | "weekly" | "fortnightly" | "monthly" | "yearly";
                            /**
                             * @description A currency code. Must be in the list from `get_currencies`
                             * @example USD
                             */
                            currency_code?: string;
                            /**
                             * @description A category id from `get_categories`
                             * @example 15
                             */
                            category_id?: number;
                        } & {
                            /**
                             * Format: int64
                             * @example 51023
                             */
                            id?: number;
                            /**
                             * @description Null if the expense is not associated with a group.
                             * @example 391
                             */
                            group_id?: number | null;
                            /**
                             * @description Null if the expense is not associated with a friendship.
                             * @example 4818
                             */
                            friendship_id?: number | null;
                            /** @example 491030 */
                            expense_bundle_id?: number | null;
                            /** @example Brunch */
                            description?: string;
                            /** @description Whether the expense recurs automatically */
                            repeats?: boolean;
                            /** @enum {string} */
                            repeat_interval?: "never" | "weekly" | "fortnightly" | "monthly" | "yearly";
                            /** @description Whether a reminder will be sent to involved users in advance of the next occurrence of a recurring expense.
                             *     Only applicable if the expense recurs.
                             *      */
                            email_reminder?: boolean;
                            /**
                             * @description Number of days in advance to remind involved users about the next occurrence of a new expense.
                             *     Only applicable if the expense recurs.
                             *
                             * @enum {integer|null}
                             */
                            email_reminder_in_advance?: null | -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 14;
                            /** @description The date of the next occurrence of a recurring expense. Only applicable if the expense recurs. */
                            next_repeat?: string | null;
                            /** @description Also known as "notes." */
                            details?: string | null;
                            comments_count?: number;
                            /** @description Whether this was a payment between users */
                            payment?: boolean;
                            /** @description If a payment was made via an integrated third party service, whether it was confirmed by that service. */
                            transaction_confirmed?: boolean;
                            /** @example 25.0 */
                            cost?: string;
                            /** @example USD */
                            currency_code?: string;
                            repayments?: {
                                /**
                                 * @description ID of the owing user
                                 * @example 6788709
                                 */
                                from?: number;
                                /**
                                 * @description ID of the owed user
                                 * @example 270896089
                                 */
                                to?: number;
                                /** @example 25.0 */
                                amount?: string;
                            }[];
                            /**
                             * Format: date-time
                             * @description The date and time the expense took place. May differ from `created_at`
                             * @example 2012-05-02T13:00:00Z
                             */
                            date?: string;
                            /**
                             * Format: date-time
                             * @description The date and time the expense was created on Splitwise
                             * @example 2012-07-27T06:17:09Z
                             */
                            created_at?: string;
                            created_by?: {
                                id?: number;
                                /** @example Ada */
                                first_name?: string;
                                /** @example Lovelace */
                                last_name?: string | null;
                                /** @example ada@example.com */
                                email?: string;
                                /** @enum {string} */
                                registration_status?: "confirmed" | "dummy" | "invited";
                                picture?: {
                                    small?: string;
                                    medium?: string;
                                    large?: string;
                                };
                                /** @example false */
                                custom_picture?: boolean;
                            } & unknown;
                            /**
                             * Format: date-time
                             * @description The last time the expense was updated.
                             * @example 2012-12-23T05:47:02Z
                             */
                            updated_at?: string;
                            updated_by?: {
                                id?: number;
                                /** @example Ada */
                                first_name?: string;
                                /** @example Lovelace */
                                last_name?: string | null;
                                /** @example ada@example.com */
                                email?: string;
                                /** @enum {string} */
                                registration_status?: "confirmed" | "dummy" | "invited";
                                picture?: {
                                    small?: string;
                                    medium?: string;
                                    large?: string;
                                };
                                /** @example false */
                                custom_picture?: boolean;
                            } & unknown;
                            /**
                             * Format: date-time
                             * @description If the expense was deleted, when it was deleted.
                             * @example 2012-12-23T05:47:02Z
                             */
                            deleted_at?: string | null;
                            deleted_by?: {
                                id?: number;
                                /** @example Ada */
                                first_name?: string;
                                /** @example Lovelace */
                                last_name?: string | null;
                                /** @example ada@example.com */
                                email?: string;
                                /** @enum {string} */
                                registration_status?: "confirmed" | "dummy" | "invited";
                                picture?: {
                                    small?: string;
                                    medium?: string;
                                    large?: string;
                                };
                                /** @example false */
                                custom_picture?: boolean;
                            } & unknown;
                            category?: {
                                /** @example 5 */
                                id?: number;
                                /**
                                 * @description Translated to the current user's locale
                                 * @example Electricity
                                 */
                                name?: string;
                            };
                            receipt?: {
                                /** @example https://splitwise.s3.amazonaws.com/uploads/expense/receipt/3678899/large_95f8ecd1-536b-44ce-ad9b-0a9498bb7cf0.png */
                                large?: string | null;
                                /** @example https://splitwise.s3.amazonaws.com/uploads/expense/receipt/3678899/95f8ecd1-536b-44ce-ad9b-0a9498bb7cf0.png */
                                original?: string | null;
                            };
                            users?: {
                                user?: {
                                    /** @example 491923 */
                                    id?: number;
                                    /** @example Jane */
                                    first_name?: string;
                                    /** @example Doe */
                                    last_name?: string;
                                    picture?: {
                                        /** @example image_url */
                                        medium?: string;
                                    };
                                };
                                /** @example 491923 */
                                user_id?: number;
                                /** @example 8.99 */
                                paid_share?: string;
                                /** @example 4.5 */
                                owed_share?: string;
                                /** @example 4.49 */
                                net_balance?: string;
                            }[];
                            comments?: {
                                /** @example 79800950 */
                                id?: number;
                                /** @example John D. updated this transaction: - The cost changed from $6.99 to $8.99 */
                                content?: string;
                                /** @enum {string} */
                                comment_type?: "System" | "User";
                                /** @enum {string} */
                                relation_type?: "ExpenseComment";
                                /**
                                 * @description ID of the subject of the comment
                                 * @example 855870953
                                 */
                                relation_id?: number;
                                /** Format: date-time */
                                created_at?: string;
                                /** Format: date-time */
                                deleted_at?: string | null;
                                user?: {
                                    /** @example 491923 */
                                    id?: number;
                                    /** @example Jane */
                                    first_name?: string;
                                    /** @example Doe */
                                    last_name?: string;
                                    picture?: {
                                        /** @example image_url */
                                        medium?: string;
                                    };
                                };
                            }[];
                        })[];
                        errors?: Record<string, never>;
                    };
                };
            };
            /** @description Invalid API key or OAuth access token */
            401: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        /** @example Invalid API request: you are not logged in */
                        error?: string;
                    };
                };
            };
            /** @description Forbidden */
            403: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        errors?: {
                            base?: string[];
                        };
                    };
                };
            };
        };
    };
    deleteExpense: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the expense to delete */
                id: number;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description OK */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        success: boolean;
                        errors?: Record<string, never>;
                    };
                };
            };
            /** @description Invalid API key or OAuth access token */
            401: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        /** @example Invalid API request: you are not logged in */
                        error?: string;
                    };
                };
            };
            /** @description Forbidden */
            403: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        errors?: {
                            base?: string[];
                        };
                    };
                };
            };
        };
    };
    unDeleteExpense: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description ID of the expense to restore */
                id: number;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description OK */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        success?: boolean;
                    };
                };
            };
            /** @description Invalid API key or OAuth access token */
            401: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        /** @example Invalid API request: you are not logged in */
                        error?: string;
                    };
                };
            };
            /** @description Forbidden */
            403: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        errors?: {
                            base?: string[];
                        };
                    };
                };
            };
        };
    };
    getComments: {
        parameters: {
            query: {
                /** @example 4193 */
                expense_id: number;
            };
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description OK */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        comments?: {
                            /** @example 79800950 */
                            id?: number;
                            /** @example John D. updated this transaction: - The cost changed from $6.99 to $8.99 */
                            content?: string;
                            /** @enum {string} */
                            comment_type?: "System" | "User";
                            /** @enum {string} */
                            relation_type?: "ExpenseComment";
                            /**
                             * @description ID of the subject of the comment
                             * @example 855870953
                             */
                            relation_id?: number;
                            /** Format: date-time */
                            created_at?: string;
                            /** Format: date-time */
                            deleted_at?: string | null;
                            user?: {
                                /** @example 491923 */
                                id?: number;
                                /** @example Jane */
                                first_name?: string;
                                /** @example Doe */
                                last_name?: string;
                                picture?: {
                                    /** @example image_url */
                                    medium?: string;
                                };
                            };
                        }[];
                    };
                };
            };
            /** @description Invalid API key or OAuth access token */
            401: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        /** @example Invalid API request: you are not logged in */
                        error?: string;
                    };
                };
            };
            /** @description Forbidden */
            403: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        errors?: {
                            base?: string[];
                        };
                    };
                };
            };
            /** @description Not Found */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        errors?: {
                            base?: string[];
                        };
                    };
                };
            };
        };
    };
    createComment: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": {
                    /** @example 5123 */
                    expense_id?: number;
                    /** @example Does this include the delivery fee? */
                    content?: string;
                };
            };
        };
        responses: {
            /** @description OK */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        comment?: {
                            /** @example 79800950 */
                            id?: number;
                            /** @example John D. updated this transaction: - The cost changed from $6.99 to $8.99 */
                            content?: string;
                            /** @enum {string} */
                            comment_type?: "System" | "User";
                            /** @enum {string} */
                            relation_type?: "ExpenseComment";
                            /**
                             * @description ID of the subject of the comment
                             * @example 855870953
                             */
                            relation_id?: number;
                            /** Format: date-time */
                            created_at?: string;
                            /** Format: date-time */
                            deleted_at?: string | null;
                            user?: {
                                /** @example 491923 */
                                id?: number;
                                /** @example Jane */
                                first_name?: string;
                                /** @example Doe */
                                last_name?: string;
                                picture?: {
                                    /** @example image_url */
                                    medium?: string;
                                };
                            };
                        } & {
                            /** @example 5123 */
                            relation_id?: unknown;
                            /** @example User */
                            comment_type?: unknown;
                            /** @example Does this include the delivery fee? */
                            content?: unknown;
                            user?: {
                                /** @example 491923 */
                                id?: number;
                                /** @example Jane */
                                first_name?: string;
                                /** @example Doe */
                                last_name?: string;
                                picture?: {
                                    /** @example image_url */
                                    medium?: string;
                                };
                            };
                        };
                    };
                };
            };
            /** @description Invalid API key or OAuth access token */
            401: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        /** @example Invalid API request: you are not logged in */
                        error?: string;
                    };
                };
            };
            /** @description Forbidden */
            403: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        errors?: {
                            base?: string[];
                        };
                    };
                };
            };
            /** @description Not Found */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        errors?: {
                            base?: string[];
                        };
                    };
                };
            };
        };
    };
    deleteComment: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: number;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description OK */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        comment?: {
                            /** @example 79800950 */
                            id?: number;
                            /** @example John D. updated this transaction: - The cost changed from $6.99 to $8.99 */
                            content?: string;
                            /** @enum {string} */
                            comment_type?: "System" | "User";
                            /** @enum {string} */
                            relation_type?: "ExpenseComment";
                            /**
                             * @description ID of the subject of the comment
                             * @example 855870953
                             */
                            relation_id?: number;
                            /** Format: date-time */
                            created_at?: string;
                            /** Format: date-time */
                            deleted_at?: string | null;
                            user?: {
                                /** @example 491923 */
                                id?: number;
                                /** @example Jane */
                                first_name?: string;
                                /** @example Doe */
                                last_name?: string;
                                picture?: {
                                    /** @example image_url */
                                    medium?: string;
                                };
                            };
                        } & {
                            /** @example User */
                            comment_type?: unknown;
                            /** @example Does this include the delivery fee? */
                            content?: unknown;
                            user?: {
                                /** @example 491923 */
                                id?: number;
                                /** @example Jane */
                                first_name?: string;
                                /** @example Doe */
                                last_name?: string;
                                picture?: {
                                    /** @example image_url */
                                    medium?: string;
                                };
                            };
                        };
                    };
                };
            };
            /** @description Invalid API key or OAuth access token */
            401: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        /** @example Invalid API request: you are not logged in */
                        error?: string;
                    };
                };
            };
            /** @description Forbidden */
            403: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        errors?: {
                            base?: string[];
                        };
                    };
                };
            };
            /** @description Not Found */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        errors?: {
                            base?: string[];
                        };
                    };
                };
            };
        };
    };
    getNotifications: {
        parameters: {
            query?: {
                /** @description If provided, returns only notifications after this time. */
                updated_after?: string;
                /** @description Omit (or provide `0`) to get the maximum number of notifications. */
                limit?: number;
            };
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description OK */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        notifications?: {
                            /** @example 32514315 */
                            id?: number;
                            type?: number;
                            /** Format: date-time */
                            created_at?: string;
                            /** @example 2 */
                            created_by?: number;
                            source?: {
                                /** @example Expense */
                                type?: string;
                                /** @example 865077 */
                                id?: number;
                                url?: string | null;
                            } | null;
                            /** @example https://s3.amazonaws.com/splitwise/uploads/notifications/v2/0-venmo.png */
                            image_url?: string;
                            /** @enum {string} */
                            image_shape?: "square" | "circle";
                            /** @example <strong>You</strong> paid <strong>Jon H.</strong>.<br><font color=\"#5bc5a7\">You paid $23.45</font> */
                            content?: string;
                        }[];
                    };
                };
            };
            /** @description Invalid API key or OAuth access token */
            401: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        /** @example Invalid API request: you are not logged in */
                        error?: string;
                    };
                };
            };
        };
    };
    getCategories: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description OK */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        categories?: ({
                            /** @example 48 */
                            id?: number;
                            /** @example Cleaning */
                            name?: string;
                            /** @example https://s3.amazonaws.com/splitwise/uploads/category/icon/square/utilities/cleaning.png */
                            icon?: string;
                            icon_types?: {
                                slim?: {
                                    /** Format: uri */
                                    small?: string;
                                    /** Format: uri */
                                    large?: string;
                                };
                                square?: {
                                    /** Format: uri */
                                    large?: string;
                                    /** Format: uri */
                                    xlarge?: string;
                                };
                            };
                        } & {
                            /** @example 1 */
                            id?: unknown;
                            /** @example Utilities */
                            name?: unknown;
                            subcategories?: {
                                /** @example 48 */
                                id?: number;
                                /** @example Cleaning */
                                name?: string;
                                /** @example https://s3.amazonaws.com/splitwise/uploads/category/icon/square/utilities/cleaning.png */
                                icon?: string;
                                icon_types?: {
                                    slim?: {
                                        /** Format: uri */
                                        small?: string;
                                        /** Format: uri */
                                        large?: string;
                                    };
                                    square?: {
                                        /** Format: uri */
                                        large?: string;
                                        /** Format: uri */
                                        xlarge?: string;
                                    };
                                };
                            }[];
                        })[];
                    };
                };
            };
        };
    };
}

/** Internal helper to get object type with only the `requestBody` property */
declare type PickRequestBody<T> = "requestBody" extends keyof T ? Pick<T, "requestBody"> : never;

declare type Primitive = null | undefined | string | number | boolean | symbol | bigint;

declare type removeUserFromGroup = operations['removeUserFromGroup'];

/** Get the required keys of an object, or `never` if no keys are required */
declare type RequiredKeysOf<T> = RequiredKeysOfHelper<T> extends undefined ? never : RequiredKeysOfHelper<T>;

/** Helper to get the required keys of an object. If no keys are required, will be `undefined` with strictNullChecks enabled, else `never` */
declare type RequiredKeysOfHelper<T> = {
    // biome-ignore lint/complexity/noBannedTypes: `{}` is necessary here
    [K in keyof T]: {} extends Pick<T, K> ? never : K;
}[keyof T];

/** Return `content` for a Response Object */
declare type ResponseContent<T> = T extends { content: any } ? T["content"] : unknown;

declare type Splitwisify = <T extends SplitwisifyPayload>(body: T) => Record<string, Primitive>;

/**
 * Flattens a nested object structure into a format suitable for Splitwise.
 *
 * This function takes an object with potentially nested properties and flattens
 * it into a single-level object where nested keys are concatenated with underscores.
 *
 * @example
 * splitwisify({
 *   message: "This is an expense",
 *   paid: "234",
 *   users: [
 *    { id: '0', description: 'Salad' },
 *    { id: '1', description: 'Pizza' },
 *    { id: '2', description: 'Again Salad' }
 *   ]
 * })
 *
 * // Returns
 * {
 *   message: "This is an expense",
 *   paid: "234",
 *   users_0_id: '0',
 *   users_0_description: 'Salad',
 *   users_1_id: '1',
 *   users_1_description: 'Pizza',
 *   users_2_id: '2',
 *   users_2_description: 'Again Salad'
 * }
 */
export declare const splitwisify: Splitwisify;

declare type SplitwisifyPayload = Record<string, Primitive | NestedRecord[]>;

declare type updateExpense = operations['updateExpense'];

declare type updateUser = operations['updateUser'];

declare type UseAuthResponse = {
    access_token: string;
};

export { }
