import { GuidValue } from "@omnia/fx/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[];
}
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
}
