import { AddressInterface, AuditInterface, EmployeeType, TenantType } from "../interfaces";
import { OfficesInterface } from "./office.interface";
import { TenantInterface } from "./tenant.interface";
export interface AgentInterface extends AuditInterface {
    uid?: string;
    fullName: string;
    firstName: string;
    lastName?: string;
    mobile?: string;
    phone?: string;
    image: string;
    email: string;
    dateOfBirth?: string;
    licenceNumber?: string;
    licenceExpiryDate?: string;
    address?: AddressInterface;
    OfficeId?: string;
    office?: OfficesInterface;
    jobTitle?: string;
    specialistAreas?: string[];
    awards?: string[];
    employeeType?: EmployeeType;
    /**
     * @deprecated The method should not be used move to `tenantTypes`
     */
    tenantType?: TenantType;
    /**
     * @abstract New field moving from `tenantType`
     */
    tenantId?: string;
    tenant?: TenantInterface;
    aggregatorIds?: string[];
    aggregators?: TenantInterface[];
    profile?: string;
    profileVideo?: string;
    startDate?: string;
    contractValedDate?: string;
    showOnWeb: boolean;
    status: "Active" | "Archived";
    customToken?: string;
    facebookUrl?: string;
    instagramUrl?: string;
    linkedInUrl?: string;
    twitterUrl?: string;
    keyword?: string;
    callCalenderUrl?: string;
    agentLanguages?: string[];
    deviceToken?: string[];
    groupId?: string;
    group?: GroupInterface;
    /**
    * @abstract just for JWT
    */
    groupAccess?: GroupAccessInterface[];
}
export interface GroupInterface extends AuditInterface {
    name: string;
    description: string;
    tenantType: TenantType;
}
export interface GroupAccessInterface extends AuditInterface {
    groupId: string;
    group: GroupInterface;
    menu: string;
    view: boolean;
    craete: boolean;
    update: boolean;
    delete: boolean;
    exceptField: string[];
}
