export type EnforceMFAType = 'DontForce' | 'Force' | 'ForceExceptSAML'; export interface ISecurityPolicy { id: string; enforceMFAType?: EnforceMFAType; createdAt: Date; updatedAt: Date; allowOverrideEnforcePasswordHistory: boolean; allowOverridePasswordComplexity: boolean; allowOverridePasswordExpiration: boolean; allowSignups: boolean; apiTokensEnabled: boolean; cookieSameSite: string; defaultRefreshTokenExpiration: number; defaultTokenExpiration: number; publicKey: string; } export interface ISecurityPolicyMfa { id: string; enforceMFAType: EnforceMFAType; createdAt: Date; updatedAt: Date; } export interface ISaveSecurityPolicyMfa { id?: string; enforceMFAType: EnforceMFAType; } export interface ISecurityPolicyLockout { id: string; enabled: boolean; maxAttempts: number; createdAt: Date; updatedAt: Date; } export interface ISaveSecurityPolicyLockout { id?: string; enabled: boolean; maxAttempts: number; } export interface ISecurityPolicyCaptcha { id: string; siteKey: string; enabled: boolean; createdAt: Date; updatedAt: Date; } export interface ISaveSecurityPolicyCaptcha { id?: string; siteKey: string; enabled: boolean; } export interface ISecurityPolicyPasswordHistory { id: string; enabled: boolean; historySize: number; createdAt: Date; updatedAt: Date; } export interface ISecurityPolicyPasswordRotation { passwordRotationVendorConfig?: ISecurityPolicyPasswordRotationConfig; passwordRotationTenantConfig?: ISecurityPolicyPasswordRotationConfig; } export interface ISecurityPolicyPasswordRotationConfig { isActive?: boolean; rotationPeriod?: number; notificationPeriod?: number; } export interface ISaveSecurityPolicyPasswordHistory { id?: string; enabled: boolean; historySize: number; } export interface TestConfig { allowPassphrases: boolean; maxLength: number; minLength: number; minPhraseLength: number; minOptionalTestsToPass: number; requiredTests?: { checkThreeRepeatedChars?: boolean; }; optionalTests?: { requireLowercase?: boolean; requireUppercase?: boolean; requireNumbers?: boolean; requireSpecialChars?: boolean; }; } export type ISecurityPolicyPasswordConfig = Partial; export declare enum RestrictionType { ALLOW = "ALLOW", BLOCK = "BLOCK" } export interface UpdateDomainRestrictionsConfig { active: boolean; blockPublicDomains?: boolean; type?: RestrictionType; } export interface CreateDomainRestriction { domain: string; type: RestrictionType; } export interface DomainRestriction { id: string; domain: string; type: RestrictionType; } export interface DomainRestrictionConfig { active: boolean; listType: RestrictionType; blockPublicDomains: boolean; } export interface IPRestrictionsConfig { isActive: boolean; strategy?: RestrictionType; } export interface GetIPRestrictionsParams { _offset: number; _limit: number; _filter: string; } export interface IPValidResponse { valid: boolean; } export interface CountryRestrictionConfig { id?: string; enabled: boolean; action: RestrictionType; failStrategy: RestrictionType; shouldSendRestrictionEmail: boolean; } export interface CountryRestrictionRule { id: string; countryCode: string; } export type UpdateCountryRestrictionConfig = Omit; export interface UpdateCountryRestrictionRules { countries: { countryCode: string; }[]; } export interface CreateIpRestriction { ip: string; strategy?: RestrictionType; isActive?: boolean; description?: string; } export interface UpdateIpRestriction { id: string; ip: string; strategy: RestrictionType; isActive?: boolean; description?: string; } export interface BulkCreateIpRestriction { ips: CreateIpRestriction[]; } export interface IpRestriction { id: string; ip: string; strategy: RestrictionType; isActive: boolean; description?: string; createdAt: Date; updatedAt: Date; }