import { CollectionDocument } from './collection-document.model';
export interface UserModel extends CollectionDocument {
    roles: UserRoleModel;
    username: string;
    email: string;
    fullname: string;
    active: boolean;
    phonenumber: string;
    readonly: boolean;
    other: OtherObject;
    attempts: number;
    salt: string;
    hash: string;
    last?: Date;
    settings?: UserSettingsModel;
    services?: Object;
    is_customer?: boolean;
}
export interface StickySelectOption {
    value: any;
    label?: string;
}
export interface StickySelectPreference {
    key: string;
    defaultValue: any;
    defaultLabel?: string;
    multiple?: boolean;
    options?: StickySelectOption[];
    updatedAt?: string;
}
export interface UserSettingsModel {
    table_color: string;
    table_font_color: string;
    secondary_table_color: string;
    secondary_table_font_color: string;
    tertiary_table_color: string;
    tertiary_table_font_color: string;
    font_size: number;
    collapsable_menu: boolean;
    entries_per_page: string;
    warning_color: string;
    warning_font_color: string;
    warning_hover_color: string;
    success_color: string;
    success_font_color: string;
    success_hover_color: string;
    danger_color: string;
    danger_font_color: string;
    danger_hover_color: string;
    info_color: string;
    info_font_color: string;
    info_hover_color: string;
    primary_color: string;
    primary_font_color: string;
    primary_hover_color: string;
    secondary_color: string;
    secondary_font_color: string;
    secondary_hover_color: string;
    routing_preference: string;
    opening_route: string;
    rio_select_search_mode?: string;
}
export interface UserRoleModel {
    super_admin: boolean;
    approvals: UserRoleApprovalModel[];
    groups: UserRoleGroupModel[];
    notifications: string[];
    miscs: string[];
}
export interface UserRoleApprovalModel {
    type: string;
    key_1?: string;
    key_2?: string;
    key_3?: string;
    name: string;
}
export interface UserRoleGroupModel {
    name: string;
    views: string[];
    yards?: string[];
}
export interface OtherObject {
    [key: string]: any;
}
