export interface PagedResult<T> {
    items: T[];
    totalCount: number;
    page: number;
    pageSize: number;
    totalPages: number;
    hasPrevious: boolean;
    hasNext: boolean;
}
export interface UserListDto {
    id: string;
    email: string;
    firstName: string;
    lastName: string;
    fullName: string;
    isActive: boolean;
    userType: string;
    roles: string[];
    lastLoginAt: string | null;
    createdAt: string;
    entraObjectId: string | null;
    lastEntraSyncAt: string | null;
    entraUserPurpose: string | null;
}
export interface UserDetailDto {
    id: string;
    email: string;
    firstName: string;
    lastName: string;
    fullName: string;
    isActive: boolean;
    userType: string;
    roles: RoleDto[];
    lastLoginAt: string | null;
    createdAt: string;
    updatedAt: string | null;
    isLocked: boolean;
    lockoutEnd: string | null;
    lastUnlockReason: number | null;
    lockedBy: string | null;
    lockedAt: string | null;
    isTemporarilyLocked: boolean;
    temporaryLockoutEnd: string | null;
    entraObjectId: string | null;
    authProvider: string | null;
    lastEntraSyncAt: string | null;
    entraUserPurpose: string | null;
    departmentId: string | null;
    departmentName: string | null;
    jobTitleId: string | null;
    jobTitleName: string | null;
    companyId: string | null;
    companyName: string | null;
    officeId: string | null;
    officeName: string | null;
    employeeId: string | null;
    employeeType: string | null;
    employeeHireDate: string | null;
    employeeOrgData: string | null;
    managerId: string | null;
    managerName: string | null;
    sponsors: string | null;
    phoneNumber: string | null;
    mobilePhone: string | null;
    faxNumber: string | null;
    streetAddress: string | null;
    city: string | null;
    state: string | null;
    postalCode: string | null;
    country: string | null;
    otherEmails: string | null;
    proxyAddresses: string | null;
    imAddresses: string | null;
    mailNickname: string | null;
    emailConfirmed: boolean;
    hasCompletedOnboarding: boolean;
    mustChangePassword: boolean;
}
export interface UserHistoryDto {
    id: string;
    actionCode: number;
    actionName: string;
    fieldChanged: string | null;
    oldValue: string | null;
    newValue: string | null;
    changedByUserId: string | null;
    changedByUserName: string | null;
    createdAt: string;
}
export interface UpdateProfileRequest {
    firstName?: string;
    lastName?: string;
}
export interface UpdateOrganizationRequest {
    departmentId?: string | null;
    jobTitleId?: string | null;
    companyId?: string | null;
    officeId?: string | null;
    managerId?: string | null;
}
export interface UpdateJobInfoRequest {
    employeeId?: string | null;
    employeeType?: string | null;
    employeeHireDate?: string | null;
    employeeOrgData?: string | null;
}
export interface UpdatePhonesRequest {
    phoneNumber?: string | null;
    mobilePhone?: string | null;
    faxNumber?: string | null;
}
export interface UpdateAddressRequest {
    streetAddress?: string | null;
    city?: string | null;
    state?: string | null;
    postalCode?: string | null;
    country?: string | null;
}
export interface UpdateContactRequest {
    otherEmails?: string | null;
    proxyAddresses?: string | null;
    imAddresses?: string | null;
    mailNickname?: string | null;
}
export interface ReferenceItemDto {
    id: string;
    code: string;
    name: string;
}
export interface OrganizationReferencesDto {
    departments: ReferenceItemDto[];
    companies: ReferenceItemDto[];
    jobTitles: ReferenceItemDto[];
    offices: ReferenceItemDto[];
    managers: ReferenceItemDto[];
}
export declare const UnlockReason: {
    readonly PasswordResetMalfunction: 1;
    readonly FalsePositive: 2;
    readonly UrgentBusinessNeed: 3;
    readonly TechnicalSystemError: 4;
    readonly SupportTicketVerified: 5;
};
export type UnlockReason = typeof UnlockReason[keyof typeof UnlockReason];
export interface UnlockAccountRequest {
    reason: UnlockReason;
    mustChangePassword: boolean;
}
export interface CreateUserRequest {
    email: string;
    password: string;
    firstName: string;
    lastName: string;
    roleIds?: string[];
}
export interface UpdateUserRequest {
    email?: string;
    firstName: string;
    lastName: string;
    roleIds?: string[];
}
export type RoleCategory = 'Global' | 'Admin' | 'Manager' | 'Contributor' | 'Viewer' | 'Custom';
export interface RoleDto {
    id: string;
    name: string;
    shortName: string;
    category: RoleCategory;
    description: string | null;
}
export interface RoleListDto {
    id: string;
    name: string;
    shortName: string;
    category: RoleCategory;
    description: string | null;
    isSystem: boolean;
    usersCount: number;
    permissionsCount: number;
    createdAt: string;
}
export interface RoleDetailDto {
    id: string;
    name: string;
    shortName: string;
    category: RoleCategory;
    description: string | null;
    isSystem: boolean;
    parentRoleId: string | null;
    users: RoleUserDto[];
    permissions: RolePermissionDto[];
    createdAt: string;
    updatedAt: string | null;
}
export interface RoleUserDto {
    id: string;
    email: string;
    fullName: string;
}
export interface RolePermissionDto {
    id: string;
    path: string;
    description: string | null;
}
export interface CreateRoleRequest {
    name: string;
    shortName?: string;
    category?: RoleCategory;
    description?: string;
    parentRoleId?: string;
    permissionIds?: string[];
}
export interface UpdateRoleRequest {
    name: string;
    shortName?: string;
    category?: RoleCategory;
    description?: string;
    parentRoleId?: string;
    permissionIds?: string[];
}
export interface RoleTranslationDto {
    id: string;
    languageCode: string;
    name: string;
    shortName: string;
    description: string | null;
}
export interface UpdateRoleTranslationRequest {
    name: string;
    shortName: string;
    description?: string;
}
export interface PermissionListDto {
    id: string;
    path: string;
    level: string;
    action: string | null;
    isWildcard: boolean;
    description: string | null;
    rolesCount: number;
}
export interface PermissionDetailDto {
    id: string;
    path: string;
    level: string;
    action: string | null;
    isWildcard: boolean;
    description: string | null;
    contextId: string | null;
    applicationId: string | null;
    moduleId: string | null;
    sectionId: string | null;
    resourceId: string | null;
    roles: PermissionRoleDto[];
    users: PermissionUserDto[];
    entraGroups: PermissionEntraGroupDto[];
    createdAt: string;
}
export interface PermissionRoleDto {
    id: string;
    name: string;
    isSystem: boolean;
}
export interface PermissionUserDto {
    id: string;
    email: string;
    firstName: string;
    lastName: string;
    roleNames: string[];
}
export interface PermissionEntraGroupDto {
    id: string;
    displayName: string;
    isSecurityGroup: boolean;
    memberCount: number;
    roleNames: string[];
}
export interface PermissionTreeDto {
    contexts: PermissionContextNode[];
}
export interface PermissionContextNode {
    id: string;
    code: string;
    label: string;
    permissionPath: string;
    applications: PermissionApplicationNode[];
}
export interface PermissionApplicationNode {
    id: string;
    code: string;
    label: string;
    permissionPath: string;
    modules: PermissionModuleNode[];
}
export interface PermissionModuleNode {
    id: string;
    code: string;
    label: string;
    permissionPath: string;
    sections: PermissionSectionNode[];
}
export interface PermissionSectionNode {
    id: string;
    code: string;
    label: string;
    permissionPath: string;
    resources: PermissionResourceNode[];
}
export interface PermissionResourceNode {
    id: string;
    code: string;
    label: string;
    permissionPath: string;
}
export interface MatrixRoleDto {
    id: string;
    name: string;
    shortName: string;
    category: RoleCategory;
    description: string | null;
    isSystem: boolean;
    permissionIds: string[];
}
export interface PermissionMatrixDto {
    roles: MatrixRoleDto[];
    permissions: PermissionListDto[];
    tree: PermissionTreeDto;
}
export interface ApplicationListDto {
    id: string;
    code: string;
    label: string;
    description: string | null;
    icon: string | null;
    iconType: string;
    route: string | null;
    displayOrder: number;
    isActive: boolean;
    contextId: string;
    contextCode: string;
    contextLabel: string;
    modulesCount: number;
}
export interface ApplicationDetailDto {
    id: string;
    code: string;
    label: string;
    description: string | null;
    icon: string | null;
    iconType: string;
    route: string | null;
    displayOrder: number;
    isActive: boolean;
    contextId: string;
    contextCode: string | null;
    contextLabel: string | null;
    modules: ApplicationModuleDto[];
    createdAt: string;
    updatedAt: string | null;
}
export interface ApplicationModuleDto {
    id: string;
    code: string;
    label: string;
    description: string | null;
    icon: string | null;
    iconType: string;
    route: string | null;
    displayOrder: number;
    isActive: boolean;
    sectionsCount: number;
}
export interface ContextDto {
    id: string;
    code: string;
    label: string;
    icon: string | null;
    iconType: string;
}
export interface UpdateApplicationRequest {
    label: string;
    description?: string;
    icon?: string;
    iconType?: string;
    route?: string;
    displayOrder: number;
}
export interface UpdateModuleRequest {
    label: string;
    description?: string;
    icon?: string;
    iconType?: string;
    route?: string;
    displayOrder: number;
}
export interface SessionDto {
    id: string;
    loginAt: string;
    logoutAt: string | null;
    ipAddress: string | null;
    userAgent: string | null;
    deviceFingerprint: string | null;
    deviceType: 'Unknown' | 'Desktop' | 'Mobile' | 'Tablet';
    country: string | null;
    city: string | null;
    isActive: boolean;
    duration: string | null;
}
export interface UserSessionsDto {
    activeSessions: SessionDto[];
    history: SessionDto[];
}
export interface LoginDayStats {
    date: string;
    successful: number;
    failed: number;
}
export interface DeviceStats {
    device: string;
    count: number;
}
export interface LocationStats {
    location: string;
    count: number;
}
export interface UserActivityDto {
    totalSuccessfulLogins: number;
    totalFailedLogins: number;
    lastSuccessfulLoginAt: string | null;
    lastSuccessfulLoginIp: string | null;
    lastFailedLoginAt: string | null;
    lastFailedLoginIp: string | null;
    lastFailedLoginReason: string | null;
    loginsByDay: LoginDayStats[];
    deviceStats: DeviceStats[];
    locationStats: LocationStats[];
}
export interface UserDashboardOverviewDto {
    totalUsers: number;
    activeUsers: number;
    inactiveUsers: number;
    newUsers: number;
    totalSessions: number;
    failedLogins: number;
    usersLoggedInRecently: number;
    totalRoles: number;
    totalPermissions: number;
}
export interface UserStatusCountDto {
    status: string;
    count: number;
}
export interface UserRoleDistributionDto {
    roleName: string;
    count: number;
}
export interface UserTypeDistributionDto {
    userType: string;
    count: number;
}
export interface LoginActivityStatsDto {
    totalSuccessful: number;
    totalFailed: number;
    byDay: LoginDayActivityDto[];
}
export interface LoginDayActivityDto {
    date: string;
    successful: number;
    failed: number;
}
export interface UserTrendDto {
    date: string;
    newUsers: number;
    logins: number;
}
export interface RecentUserDto {
    id: string;
    email: string;
    fullName: string;
    createdAt: string;
    lastLoginAt: string | null;
    isActive: boolean;
    userType: string;
}
export interface SecurityAlertDto {
    userId: string;
    email: string;
    fullName: string;
    failedAttempts: number;
    lastAttemptAt: string;
    ipAddresses: string[];
}
export interface ActiveSessionsStatsDto {
    totalActiveSessions: number;
    byBrowser: BrowserStatsDto[];
    byCountry: CountryStatsDto[];
}
export interface BrowserStatsDto {
    browser: string;
    count: number;
}
export interface CountryStatsDto {
    country: string;
    count: number;
}
export interface LatestActiveSessionDto {
    userId: string;
    fullName: string;
    duration: string;
    loginAt: string;
}
export type SettingSource = 'Database' | 'AppSettings' | 'Environment' | 'Computed';
export type SettingValueType = 'String' | 'Int' | 'Bool' | 'Json' | 'TimeSpan' | 'Decimal';
export interface SettingDto {
    category: string;
    key: string;
    value: string;
    defaultValue: string;
    valueType: SettingValueType;
    description: string | null;
    isEditable: boolean;
    isSensitive: boolean;
    displayOrder: number;
}
export interface SettingViewModel {
    category: string;
    key: string;
    value: string;
    displayValue: string;
    defaultValue: string | null;
    valueType: SettingValueType;
    description: string | null;
    isEditable: boolean;
    isSensitive: boolean;
    displayOrder: number;
    source: SettingSource;
    modifiedByUserName: string | null;
    modifiedAt: string | null;
}
export interface SettingHistoryDto {
    id: string;
    oldValue: string;
    newValue: string;
    changedByUserName: string | null;
    changedAt: string;
}
export declare const adminApi: {
    users: {
        getAll: (params?: {
            page?: number;
            pageSize?: number;
            search?: string;
            isActive?: boolean;
            entraOnly?: boolean;
            roleId?: string;
            userType?: string;
            sortBy?: string;
            sortDesc?: boolean;
        }) => Promise<PagedResult<UserListDto>>;
        getById: (id: string) => Promise<UserDetailDto>;
        create: (data: CreateUserRequest) => Promise<UserDetailDto>;
        update: (id: string, data: UpdateUserRequest) => Promise<UserDetailDto>;
        sendPasswordResetLink: (id: string) => Promise<{
            message: string;
        }>;
        resetPasswordDirect: (id: string, temporaryPassword?: string) => Promise<{
            message: string;
            temporaryPassword: string;
            mustChangePassword: boolean;
        }>;
        activate: (id: string) => Promise<unknown>;
        deactivate: (id: string) => Promise<unknown>;
        unlock: (id: string, data: UnlockAccountRequest) => Promise<{
            message: string;
            mustChangePassword: boolean;
        }>;
        clearFailedAttempts: (id: string) => Promise<{
            message: string;
            clearedCount: number;
        }>;
        delete: (id: string) => Promise<unknown>;
        getSessions: (id: string) => Promise<UserSessionsDto>;
        endAllSessions: (id: string) => Promise<unknown>;
        endSession: (userId: string, sessionId: string) => Promise<unknown>;
        getActivity: (id: string) => Promise<UserActivityDto>;
        getCustomRole: (id: string) => Promise<RoleDetailDto | null>;
        createCustomRole: (id: string) => Promise<RoleDetailDto>;
        deleteCustomRole: (id: string) => Promise<unknown>;
        getHistory: (id: string, limit?: number) => Promise<UserHistoryDto[]>;
        restoreFromHistory: (userId: string, historyId: string) => Promise<{
            message: string;
            field: string;
            restoredValue: string;
        }>;
        getOrganizationReferences: () => Promise<OrganizationReferencesDto>;
        updateProfile: (id: string, data: UpdateProfileRequest) => Promise<unknown>;
        updateOrganization: (id: string, data: UpdateOrganizationRequest) => Promise<unknown>;
        updateJobInfo: (id: string, data: UpdateJobInfoRequest) => Promise<unknown>;
        updatePhones: (id: string, data: UpdatePhonesRequest) => Promise<unknown>;
        updateAddress: (id: string, data: UpdateAddressRequest) => Promise<unknown>;
        updateContact: (id: string, data: UpdateContactRequest) => Promise<unknown>;
    };
    roles: {
        getAll: (params?: {
            search?: string;
            excludeCategories?: string;
            minPermissionsCount?: number;
        }) => Promise<RoleListDto[]>;
        /** Get roles that can be assigned to groups/users (excludes Custom category and roles with 0 permissions) */
        getAssignable: () => Promise<RoleListDto[]>;
        getById: (id: string) => Promise<RoleDetailDto>;
        create: (data: CreateRoleRequest) => Promise<RoleDetailDto>;
        update: (id: string, data: UpdateRoleRequest) => Promise<RoleDetailDto>;
        delete: (id: string) => Promise<unknown>;
        assignUser: (roleId: string, userId: string) => Promise<unknown>;
        removeUser: (roleId: string, userId: string) => Promise<unknown>;
        getTranslations: (roleId: string) => Promise<RoleTranslationDto[]>;
        upsertTranslation: (roleId: string, languageCode: string, data: UpdateRoleTranslationRequest) => Promise<RoleTranslationDto>;
        deleteTranslation: (roleId: string, languageCode: string) => Promise<unknown>;
    };
    permissions: {
        getAll: (params?: {
            search?: string;
            level?: string;
        }) => Promise<PermissionListDto[]>;
        getById: (id: string) => Promise<PermissionDetailDto>;
        getTree: () => Promise<PermissionTreeDto>;
        getMatrix: () => Promise<PermissionMatrixDto>;
        delete: (id: string) => Promise<unknown>;
    };
    applications: {
        getAll: (params?: {
            contextId?: string;
            isActive?: boolean;
        }) => Promise<ApplicationListDto[]>;
        getById: (id: string) => Promise<ApplicationDetailDto>;
        getContexts: () => Promise<ContextDto[]>;
        update: (id: string, data: UpdateApplicationRequest) => Promise<ApplicationDetailDto>;
        activate: (id: string) => Promise<unknown>;
        deactivate: (id: string) => Promise<unknown>;
        getModules: (appId: string) => Promise<ApplicationModuleDto[]>;
        updateModule: (appId: string, moduleId: string, data: UpdateModuleRequest) => Promise<ApplicationModuleDto>;
    };
    dashboard: {
        getOverview: (days?: number) => Promise<UserDashboardOverviewDto>;
        getByStatus: () => Promise<UserStatusCountDto[]>;
        getByRole: () => Promise<UserRoleDistributionDto[]>;
        getByType: () => Promise<UserTypeDistributionDto[]>;
        getLoginActivity: (days?: number) => Promise<LoginActivityStatsDto>;
        getTrends: (days?: number) => Promise<UserTrendDto[]>;
        getRecentUsers: (limit?: number) => Promise<RecentUserDto[]>;
        getSecurityAlerts: (threshold?: number, hours?: number) => Promise<SecurityAlertDto[]>;
        getActiveSessions: () => Promise<ActiveSessionsStatsDto>;
        getLatestActiveSessions: (limit?: number) => Promise<LatestActiveSessionDto[]>;
    };
    settings: {
        getAll: () => Promise<SettingViewModel[]>;
        getByCategory: (category: string) => Promise<SettingViewModel[]>;
        get: (category: string, key: string) => Promise<SettingDto>;
        update: (category: string, key: string, value: string) => Promise<SettingDto>;
        reset: (category: string, key: string) => Promise<SettingDto>;
        getHistory: (category: string, key: string) => Promise<SettingHistoryDto[]>;
        getCategories: () => Promise<string[]>;
    };
};
//# sourceMappingURL=adminApi.d.ts.map