import type { Channel, ChannelOptions } from "../channel";
import { PermissionedAppInitOptions } from "../../init/types.js";
import { PermissionedAppState } from "../state/permissionedApp.js";
export declare const init: (options: PermissionedAppInitOptions) => Promise<PermissionedAppState | null>;
export declare const register: (options: {
    username: string;
    email?: string;
}) => Promise<{
    success: boolean;
}>;
export declare const isUsernameValid: (username: string) => Promise<boolean>;
export declare const isUsernameAvailable: (username: string) => Promise<boolean>;
export declare const createChannel: (options: ChannelOptions) => Promise<Channel>;
export declare const checkCapability: (username: string) => Promise<boolean>;
export declare const delegateAccount: (username: string, audience: string) => Promise<Record<string, unknown>>;
export declare const linkDevice: (data: Record<string, unknown>) => Promise<void>;
export declare const LOBBY_IMPLEMENTATION: {
    auth: {
        init: (options: PermissionedAppInitOptions) => Promise<PermissionedAppState | null>;
        register: (options: {
            username: string;
            email?: string;
        }) => Promise<{
            success: boolean;
        }>;
        isUsernameValid: (username: string) => Promise<boolean>;
        isUsernameAvailable: (username: string) => Promise<boolean>;
        createChannel: (options: ChannelOptions) => Promise<Channel>;
        checkCapability: (username: string) => Promise<boolean>;
        delegateAccount: (username: string, audience: string) => Promise<Record<string, unknown>>;
        linkDevice: (data: Record<string, unknown>) => Promise<void>;
    };
};
