export declare type ScopedUser = Partial<{
    id: string;
    name: string;
    email: string;
    connections: {
        permissions: number;
    }[];
}>;
export declare type Application = {
    id: string;
    name: string;
    owner_id: string;
    owner_name: string;
    meta: {
        homepage?: string;
        terms_of_service?: string;
        contact?: string;
    };
};
export declare type OwnedApplication = Omit<Application, 'owner_name'> & {
    secret: boolean;
    sessions: string[];
};
export declare type User = {
    id: string;
    display: string;
    applications: Application[];
};
export declare type Self = Omit<User, 'applications'> & {
    email: string;
    authentication: {
        password: boolean;
        totp: boolean;
        authn: [];
    };
    applications: OwnedApplication[];
};
