import type { ArcstrumAuth, AuthUser } from "./types.js";
interface AuthClientOptions {
    userId: string;
    token?: string;
    apiBase?: string;
}
export declare class ArcstrumAuthClient {
    private userId;
    private token?;
    private apiBase;
    constructor({ userId, token, apiBase }: AuthClientOptions);
    private headers;
    private post;
    private get;
    listAuths(): Promise<ArcstrumAuth[]>;
    createAuth(name: string): Promise<void>;
    deleteAuth(auth_id: string): Promise<void>;
    setAuthMetadata(auth_id: string, metadata: Record<string, any>): Promise<void>;
    getAuthMetadata(auth_id: string): Promise<Record<string, any>>;
    setAuthConfig(auth_id: string, config: Record<string, any>): Promise<void>;
    getAuthConfig(auth_id: string): Promise<Record<string, any>>;
    listAuthUsers(authId: string): Promise<AuthUser[]>;
    deleteAuthUser(authId: string, userId: string): Promise<void>;
    getAuthUserMetadata(authId: string, userId: string): Promise<Record<string, any>>;
    deleteAuthUserMetadata(authId: string, userId: string): Promise<void>;
    setAuthUserMetadata(authId: string, userId: string, metadata: Record<string, any>): Promise<void>;
    getAuthUserRoles(authId: string, userId: string): Promise<string[]>;
    setAuthUserRoles(authId: string, userId: string, roles: string[]): Promise<void>;
}
export declare function exchangeAuthCode(code: string, authId: string, apiBase: string, redirect_uri: string): Promise<{
    token: string;
    user: any;
}>;
export {};
