import { AssignmentDto, RoleSettingsDto } from '../../index.js';
import { DataTreeGroup } from '../group/index.js';
export interface User {
    id: string;
    email: string;
    currentOrganizationId: string;
    organizationIds: string[];
    isAnonymous: boolean;
}
export declare enum ApplicationUserStatus {
    EDITOR_PENDING_JOIN = 0,
    EDITOR_JOINED = 1
}
export interface ApplicationUserDto {
    name: string;
    email: string;
    id: string;
    status: ApplicationUserStatus;
}
export declare enum OrganizationUserStatus {
    PENDING = 0,
    ACTIVE = 1,
    INACTIVE = 2
}
export interface OrganizationUserDto {
    name: string;
    email: string;
    id: string;
    status: OrganizationUserStatus;
    type?: UserType;
    lastJwtIssuedAt?: Date;
    assignments?: AssignmentDto[];
}
export type Domain = {
    id: string;
    name: string;
    allowed: boolean;
};
export type GetOrganizationGeneralResponseBody = {
    name: string;
    allowedDomains: Domain[];
    roleSettings: RoleSettingsDto;
};
export type PatchOrganizationGeneralResponseBody = {
    name?: string;
    allowedDomains?: string[];
    roleSettings?: RoleSettingsDto;
};
export type DataTreeUser = {
    name: string;
    email: string;
    id: string;
    groups: DataTreeGroup[];
    username: string;
    metadata: Record<string, unknown>;
};
export declare enum AccessMode {
    VISITOR = "visitor",
    AUTH_USER = "auth_user",
    EXTERNAL_USER = "external_user"
}
export declare enum UserSource {
    SUPERBLOCKS = "SUPERBLOCKS",
    SCIM = "SCIM"
}
export declare enum UserType {
    SUPERBLOCKS = "SUPERBLOCKS",
    EXTERNAL = "EXTERNAL"
}
export type UserAuthSource = 'Superblocks' | 'Auth0' | 'Anonymous';
export declare enum JoinRequestStatus {
    APPROVED = "APPROVED",
    CANCELLED = "CANCELLED",
    DENIED = "DENIED",
    PENDING = "PENDING"
}
export interface JoinRequestDto {
    id: string;
    requesterEmail: string;
    requesterName: string;
    targetOrganizationId: string;
    targetOrganizationName: string;
    status: JoinRequestStatus;
    created: Date;
}
export interface MatchingDomainOrgDto {
    id: string;
    name: string;
}
export declare enum RequestSource {
    SUPERBLOCKS = "superblocks",
    EMBED = "embed"
}
export * from './analytics.js';
export * from './emailVerification.js';
export * from './survey.js';
//# sourceMappingURL=index.d.ts.map