import { GuidValue } from "@omnia/fx-models/internal-do-not-import-from-here/shared";
import { MultilingualString } from "../MultilingualString";
import { IdentityProviderProperty } from "./IdentityProviderProperty";
import { IdentityProviderRunStatus } from "./IdentityProviderRunStatus";
export interface IdentityProviderSettingsBase {
    schedule: string;
    started?: Date;
    ended?: Date;
    status: IdentityProviderRunStatus;
    fullSyncOnNextRun: boolean;
    fullUserSyncOnNextRun: boolean;
    fullLogOnNextRun: boolean;
    togglePauseOnNextRun: boolean;
    setupComplete: boolean;
    nextScheduledRun?: Date;
}
export interface IdentityProviderSettingsValue {
}
export interface IdentityProviderSettings<T extends IdentityProviderSettingsValue> extends IdentityProviderSettingsBase {
    value: T;
}
export interface IdentityProviderSettingsBuiltInValue {
    userTypeEvaluations: UserTypeEvaluation[];
    usersFilter: IdentityFilter;
}
export interface IdentityFilter {
    evalEmptyAsTrue: boolean;
    isExcludeFilter: boolean;
    evaluationSets: EvaluationSet[];
}
export interface UserTypeEvaluation {
    displayName: MultilingualString;
    userTypeId: GuidValue;
    evaluationSets: EvaluationSet[];
}
export interface EvaluationSet {
    property: IdentityProviderProperty;
    rules: Rule[];
}
export interface Rule {
    property: IdentityProviderProperty;
    value: string;
    typeOfCompare: RuleCompareType;
}
export declare enum RuleCompareType {
    Equals = 0,
    Contains = 1,
    StartsWith = 2,
    EndsWith = 3,
    NotEquals = 4,
    NotContains = 5,
    NotStartsWith = 6,
    NotEndsWith = 7
}
