import { AdminAuthClient } from './admin-auth-client';
type CreateUserParams = NonNullable<Parameters<AdminAuthClient["admin"]["createUser"]>[0]>;
type UpdateUserParams = NonNullable<Parameters<AdminAuthClient["admin"]["updateUser"]>[0]>;
type SetRoleParams = NonNullable<Parameters<AdminAuthClient["admin"]["setRole"]>[0]>;
type SetUserPasswordParams = NonNullable<Parameters<AdminAuthClient["admin"]["setUserPassword"]>[0]>;
type BanUserParams = NonNullable<Parameters<AdminAuthClient["admin"]["banUser"]>[0]>;
type UnbanUserParams = NonNullable<Parameters<AdminAuthClient["admin"]["unbanUser"]>[0]>;
type RevokeUserSessionParams = NonNullable<Parameters<AdminAuthClient["admin"]["revokeUserSession"]>[0]>;
type RevokeUserSessionsParams = NonNullable<Parameters<AdminAuthClient["admin"]["revokeUserSessions"]>[0]>;
type ImpersonateUserParams = NonNullable<Parameters<AdminAuthClient["admin"]["impersonateUser"]>[0]>;
type RemoveUserParams = NonNullable<Parameters<AdminAuthClient["admin"]["removeUser"]>[0]>;
export declare function createAdminUserOptions(authClient: AdminAuthClient, actorUserId?: string): {
    mutationKey: readonly ["auth", "admin", "createUser"];
    mutationFn: (params: CreateUserParams) => Promise<{
        user: import('better-auth/plugins').UserWithRole;
    }>;
    meta: {
        awaits: (readonly ["auth", "user", string | undefined, "admin", "users", "list"])[];
    };
};
export declare function updateAdminUserOptions(authClient: AdminAuthClient, actorUserId?: string): {
    mutationKey: readonly ["auth", "admin", "updateUser"];
    mutationFn: (params: UpdateUserParams) => Promise<import('better-auth/plugins').UserWithRole>;
    meta: {
        awaits: (readonly ["auth", "user", string | undefined, "admin", "users", "list"] | readonly ["auth", "user", string | undefined, "admin", "users", "detail"])[];
    };
};
export declare function setAdminUserRoleOptions(authClient: AdminAuthClient, actorUserId?: string): {
    mutationKey: readonly ["auth", "admin", "setRole"];
    mutationFn: (params: SetRoleParams) => Promise<{
        user: import('better-auth/plugins').UserWithRole;
    }>;
    meta: {
        awaits: (readonly ["auth", "user", string | undefined, "admin", "users", "list"] | readonly ["auth", "user", string | undefined, "admin", "users", "detail"])[];
    };
};
/**
 * Mutation options for setting a password.
 *
 * Keep the password in local form state, never in a query key or mutation
 * metadata, and reset the mutation immediately after the request settles.
 */
export declare function setAdminUserPasswordOptions(authClient: AdminAuthClient, onSettled?: () => void): {
    mutationKey: readonly ["auth", "admin", "setUserPassword"];
    mutationFn: (params: SetUserPasswordParams) => Promise<{
        status: boolean;
    }>;
    gcTime: number;
    onSettled: () => void;
};
export declare function banAdminUserOptions(authClient: AdminAuthClient, actorUserId?: string): {
    mutationKey: readonly ["auth", "admin", "banUser"];
    mutationFn: (params: BanUserParams) => Promise<{
        user: import('better-auth/plugins').UserWithRole;
    }>;
    meta: {
        awaits: (readonly ["auth", "user", string | undefined, "admin", "users", "list"] | readonly ["auth", "user", string | undefined, "admin", "users", "detail"])[];
    };
};
export declare function unbanAdminUserOptions(authClient: AdminAuthClient, actorUserId?: string): {
    mutationKey: readonly ["auth", "admin", "unbanUser"];
    mutationFn: (params: UnbanUserParams) => Promise<{
        user: import('better-auth/plugins').UserWithRole;
    }>;
    meta: {
        awaits: (readonly ["auth", "user", string | undefined, "admin", "users", "list"] | readonly ["auth", "user", string | undefined, "admin", "users", "detail"])[];
    };
};
export declare function revokeAdminUserSessionOptions(authClient: AdminAuthClient, actorUserId: string | undefined, targetUserId: string | undefined): {
    mutationKey: readonly ["auth", "admin", "revokeUserSession"];
    mutationFn: (params: RevokeUserSessionParams) => Promise<{
        success: boolean;
    }>;
    meta: {
        awaits: (readonly ["auth", "user", string | undefined, "admin", "users", "detail", string | null, "sessions"])[];
    };
};
export declare function revokeAdminUserSessionsOptions(authClient: AdminAuthClient, actorUserId: string | undefined, targetUserId: string | undefined): {
    mutationKey: readonly ["auth", "admin", "revokeUserSessions"];
    mutationFn: (params: RevokeUserSessionsParams) => Promise<{
        success: boolean;
    }>;
    meta: {
        awaits: (readonly ["auth", "user", string | undefined, "admin", "users", "detail", string | null, "sessions"])[];
    };
};
export declare function impersonateAdminUserOptions(authClient: AdminAuthClient, actorUserId?: string): {
    mutationKey: readonly ["auth", "admin", "impersonateUser"];
    mutationFn: (params: ImpersonateUserParams) => Promise<{
        session: {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            userId: string;
            expiresAt: Date;
            token: string;
            ipAddress?: string | null | undefined;
            userAgent?: string | null | undefined;
        };
        user: import('better-auth/plugins').UserWithRole;
    }>;
    meta: {
        removes: (readonly ["auth", "user", string | undefined, "admin"])[];
        awaits: (readonly ["auth", "getSession"])[];
    };
};
export declare function removeAdminUserOptions(authClient: AdminAuthClient, actorUserId?: string): {
    mutationKey: readonly ["auth", "admin", "removeUser"];
    mutationFn: (params: RemoveUserParams) => Promise<{
        success: boolean;
    }>;
    meta: {
        awaits: (readonly ["auth", "user", string | undefined, "admin", "users", "list"] | readonly ["auth", "user", string | undefined, "admin", "users", "detail"])[];
    };
};
export {};
