import * as i4 from '@angular/forms';
import { FormControl, FormGroup, ControlValueAccessor, NgControl, ControlContainer, Validator, ValidationErrors, ValidatorFn, AbstractControl, UntypedFormControl, UntypedFormArray, UntypedFormGroup, UntypedFormBuilder } from '@angular/forms';
import * as rxjs from 'rxjs';
import { Subject, Observable, ReplaySubject, BehaviorSubject } from 'rxjs';
import * as i0 from '@angular/core';
import { OnInit, OnDestroy, TemplateRef, EventEmitter, AfterContentInit, QueryList, ChangeDetectorRef, ElementRef, NgZone, AfterViewChecked, Type, ViewContainerRef, ComponentRef, AfterViewInit, OnChanges, SimpleChanges, ModuleWithProviders, Renderer2, Injector, PipeTransform, InjectionToken } from '@angular/core';
import * as i3 from '@ionic/angular';
import { NavController, Platform, IonModal, Gesture } from '@ionic/angular';
import * as i2 from '@angular/common';
import { NgIfContext, DecimalPipe, CurrencyPipe, DatePipe } from '@angular/common';
import * as i8 from '@angular/common/http';
import { HttpClient } from '@angular/common/http';
import { ListKeyManagerOption, Highlightable, ActiveDescendantKeyManager } from '@angular/cdk/a11y';
import { BooleanInput } from '@angular/cdk/coercion';
import { SelectionModel } from '@angular/cdk/collections';
import * as i1 from '@angular/router';
import { Router, ActivatedRoute } from '@angular/router';
import * as i7 from '@angular/material/button';
import * as i13 from '@angular/material/icon';
import * as i14 from '@angular/material/menu';
import { MatMenu } from '@angular/material/menu';
import * as i10 from 'ng-otp-input';
import { NgOtpInputComponent } from 'ng-otp-input';
import * as i6 from '@angular/material/input';
import * as i4$1 from '@ngx-translate/core';
import { TranslateService } from '@ngx-translate/core';
import * as i5 from 'ngx-mask';
import { NgxMaskConfig } from 'ngx-mask';
import * as i3$2 from '@angular/google-maps';
import { GoogleMap, MapCircle } from '@angular/google-maps';
import { NgxImageCompressService } from 'ngx-image-compress';
import * as i5$2 from 'ngx-image-cropper';
import { CropperPosition, ImageCroppedEvent } from 'ngx-image-cropper';
import * as i3$1 from '@angular/cdk/drag-drop';
import { CdkDragDrop } from '@angular/cdk/drag-drop';
import * as i13$1 from '@angular/material/core';
import * as i17 from '@angular/material/tooltip';
import { TooltipPosition } from '@angular/material/tooltip';
import * as i7$1 from 'primeng/skeleton';
import * as i4$2 from '@angular/cdk/listbox';
import * as i7$2 from 'ngx-bootstrap/dropdown';
import * as i14$1 from '@angular/cdk/text-field';
import { AutofillMonitor } from '@angular/cdk/text-field';
import * as i4$4 from '@angular/material/dialog';
import { MatDialogRef, MatDialog } from '@angular/material/dialog';
import { MenuItem } from 'primeng/api';
import { SafeHtml, SafeUrl, DomSanitizer } from '@angular/platform-browser';
import * as i4$3 from '@angular/cdk/overlay';
import { Overlay, OverlayPositionBuilder } from '@angular/cdk/overlay';
import * as i6$1 from '@angular/cdk/scrolling';
import * as i3$3 from '@angular/material/expansion';
import { ModalBreakpointChangeEventDetail } from '@ionic/core';
import * as i10$1 from '@angular/material/select';
import { MatSelect } from '@angular/material/select';
import * as i5$1 from '@angular/material-date-fns-adapter';
import * as i6$3 from '@angular/material/datepicker';
import * as i7$3 from '@angular/material/form-field';
import * as i9 from '@angular/material/radio';
import * as i4$5 from 'primeng/select';
import * as i6$2 from 'primeng/datepicker';
import { DatePicker } from 'primeng/datepicker';
import * as i6$4 from '@angular/material/autocomplete';
import { MatAutocomplete, MatAutocompleteTrigger } from '@angular/material/autocomplete';
import * as i3$4 from '@angular/material/progress-spinner';
import * as i10$2 from 'primeng/menu';
import * as i12 from '@angular/material/chips';
import * as i15 from '@angular/material/divider';
import * as i10$3 from 'primeng/paginator';
import { Paginator } from 'primeng/paginator';
import * as i12$1 from 'primeng/table';
import { TableLazyLoadEvent, TableColumnReorderEvent } from 'primeng/table';
import * as i18 from 'primeng/button';
import { Instance } from 'flatpickr/dist/types/instance';
import * as i4$6 from 'angularx-flatpickr';
import * as i3$5 from 'primeng/tabs';
import * as i4$7 from '@angular/material/tabs';
import Quill from 'quill';
import * as i5$3 from '@angular/material/card';
import * as i13$2 from '@angular/material/snack-bar';
import * as i16 from '@angular/material/progress-bar';

declare enum AuthProviders {
    GOOGLE = "google",
    FACEBOOK = "facebook",
    TWITTER = "twitter"
}

declare enum LoginFormType {
    Email = "email",
    Phone = "phone"
}

interface IAuthModel {
    username?: string;
    password: string;
    remember?: boolean;
}
interface IPhoneDetails {
    number?: string;
    internationalNumber?: string;
    nationalNumber?: string;
    e164Number?: string;
    countryCode?: string;
    dialCode?: string;
}
interface ILoginForm {
    username: FormControl<string>;
    password: FormControl<string>;
    remember?: FormControl<boolean>;
}
interface IResetPasswordForm {
    password: FormControl<string>;
    confirmPassword: FormControl<string>;
}
interface IForgetPasswordForm {
    email: FormControl<string>;
}
interface IAuthRouteParams {
    route: any[];
    params?: {
        [key: string]: any;
    };
}

interface ILanguage {
    key: string;
    name: string;
}

interface ITheme {
    key: string;
    name: string;
    icons: string;
}

type AuthIcons = {
    logo: string;
    password: {
        lock: string;
        unlock: string;
    };
    socialIcons: {
        google: string;
        facebook: string;
        twitter: string;
    };
    toggleIcons: {
        left: {
            enable: string;
            disable: string;
        };
        right: {
            enable: string;
            disable: string;
        };
        thumb: string;
    };
    telInputIcons: {
        countrySelectorImage: string;
    };
};

declare abstract class AuthModuleViewComponent implements OnInit, OnDestroy {
    authService: AbstractAuthService;
    viewEntered$: Subject<void>;
    continueButtonText: string;
    previousRouteUrl: string;
    showBackButton: boolean;
    showFooter: boolean;
    form: FormGroup | FormControl;
    username: string;
    icons: AuthIcons;
    loading$: Observable<boolean>;
    componentDestroyed$: Subject<void>;
    constructor(authService: AbstractAuthService);
    ngOnInit(): void;
    ngOnDestroy(): void;
    abstract onSubmit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AuthModuleViewComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AuthModuleViewComponent, "ng-component", never, { "viewEntered$": { "alias": "viewEntered$"; "required": false; }; }, {}, never, never, true, never>;
}

declare abstract class AbstractAuthService {
    private _loading$;
    loading$: Observable<boolean>;
    private _showBackBtn$;
    showBackBtn$: Observable<boolean>;
    private _secondsLeft$;
    secondsLeft$: Observable<number>;
    abstract icons: AuthIcons;
    abstract username: string;
    abstract languages: ILanguage[];
    abstract themes: ITheme[];
    abstract activeLanguageKey: string;
    abstract activeThemeKey: string;
    currentView: AuthModuleViewComponent;
    showFooter$: Subject<boolean>;
    formSwitcher$: Subject<FormGroup | FormControl>;
    constructor();
    setLoading(loading: boolean): void;
    setShowBackBtn(showBackBtn: boolean): void;
    setSecondsLeft(secondsLeft: number): void;
    abstract login(request: IAuthModel): void;
    abstract socialLogin(provider: AuthProviders): void;
    abstract navigateToRegister(): void;
    abstract navigateToForgetPassword(email: string): void;
    abstract changeTheme(theme: string): void;
    abstract changeLanguage(lang: string): void;
    abstract sendForgetPasswordRequest(request: {
        email: string;
    }): void;
    abstract verifyForgetPasswordRequest(request: {
        email: string;
        code: string;
    }): void;
    abstract verifyForgetPasswordRequestResend(request: {
        email: string;
    }): void;
    abstract sendResetPasswordRequest(request: {
        password: string;
        email: string;
    }): void;
    abstract onLoginFormTypeChange(loginFormType: LoginFormType): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AbstractAuthService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<AbstractAuthService>;
}

interface ILibMenuItem {
    templateRef?: TemplateRef<HTMLElement>;
    title?: string;
    titlePrefix?: string;
    titleSuffix?: string;
    iconUrl?: string;
    iconName?: string;
    cssClass?: string;
    active?: boolean;
    disabled?: boolean;
    separator?: boolean;
    subMenu?: ILibMenuItem[];
    listItem?: unknown;
    listItemIndex?: number;
    /** When true, prevents click events from being handled for this menu item, like closing the menu */
    disableClick?: boolean;
    command?: (event?: ILibMenuItem) => void;
}

declare class AuthHeaderComponent implements OnInit {
    private authService;
    private nav;
    languagesMenuItems: ILibMenuItem[];
    themesMenuItems: ILibMenuItem[];
    showBackBtn$: Observable<boolean>;
    constructor(authService: AbstractAuthService, nav: NavController);
    ngOnInit(): void;
    changeTheme: (theme: string) => void;
    changeLanguage: (lang: string) => void;
    gotToPreviousRoute(): void;
    private buildHeaderMenus;
    static ɵfac: i0.ɵɵFactoryDeclaration<AuthHeaderComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AuthHeaderComponent, "lib-auth-header", never, {}, {}, never, never, false, never>;
}

declare class AuthSocialComponent {
    private authService;
    icons: {
        google: string;
        facebook: string;
        twitter: string;
    };
    providers: typeof AuthProviders;
    /***/
    constructor(authService: AbstractAuthService);
    /**
     * on social login/register
     *
     * @param provider [google, facebook, Twitter ]
     */
    socialLogin: (provider: AuthProviders) => void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AuthSocialComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AuthSocialComponent, "lib-auth-social", never, { "icons": { "alias": "icons"; "required": false; }; }, {}, never, never, false, never>;
}

declare class LoginScreenComponent extends AuthModuleViewComponent implements OnInit {
    authService: AbstractAuthService;
    title: string;
    entryTitle: string;
    usernameLabel: string;
    phoneNumberPlaceHolder: string;
    enableRememberMe: boolean;
    enableForgetPassword: boolean;
    enableSocialLogin: boolean;
    enableRegistration: boolean;
    customClass: string;
    logoUrl: string;
    hidePassword: boolean;
    loginFormGroup: FormGroup<ILoginForm>;
    /***/
    constructor(authService: AbstractAuthService);
    ngOnInit(): void;
    /**
     * on submit login
     */
    onSubmit(): void;
    navigateToRegister: () => void;
    navigateToForgetPassword: (email: string) => void;
    /**
     * build login form group
     */
    private buildForm;
    onLoginFormTypeChange(loginFormType: LoginFormType): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<LoginScreenComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<LoginScreenComponent, "lib-login-screen", never, { "title": { "alias": "title"; "required": false; }; "entryTitle": { "alias": "entryTitle"; "required": false; }; "usernameLabel": { "alias": "usernameLabel"; "required": false; }; "phoneNumberPlaceHolder": { "alias": "phoneNumberPlaceHolder"; "required": false; }; "enableRememberMe": { "alias": "enableRememberMe"; "required": false; }; "enableForgetPassword": { "alias": "enableForgetPassword"; "required": false; }; "enableSocialLogin": { "alias": "enableSocialLogin"; "required": false; }; "enableRegistration": { "alias": "enableRegistration"; "required": false; }; "customClass": { "alias": "customClass"; "required": false; }; "logoUrl": { "alias": "logoUrl"; "required": false; }; }, {}, never, never, false, never>;
}

declare class ForgotPasswordScreenComponent extends AuthModuleViewComponent implements OnInit {
    authService: AbstractAuthService;
    customClass: string;
    form: FormGroup<IForgetPasswordForm>;
    loading$: rxjs.Observable<boolean>;
    constructor(authService: AbstractAuthService);
    ngOnInit(): void;
    ionViewWillLeave(): void;
    /**
     * submit forgot password form
     */
    onSubmit(): void;
    /**
     * build login form group
     */
    private buildForm;
    static ɵfac: i0.ɵɵFactoryDeclaration<ForgotPasswordScreenComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ForgotPasswordScreenComponent, "lib-forgot-password", never, { "customClass": { "alias": "customClass"; "required": false; }; }, {}, never, never, false, never>;
}

declare class ResetPasswordScreenComponent extends AuthModuleViewComponent implements OnInit {
    authService: AbstractAuthService;
    hide: boolean;
    confirmPasswordHide: boolean;
    loading$: rxjs.Observable<boolean>;
    form: FormGroup;
    constructor(authService: AbstractAuthService);
    ngOnInit(): void;
    /**
     * submit reset password
     */
    onSubmit(): void;
    /**
     * build reset password form
     */
    private buildForm;
    static ɵfac: i0.ɵɵFactoryDeclaration<ResetPasswordScreenComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ResetPasswordScreenComponent, "lib-reset-password", never, {}, {}, never, never, false, never>;
}

declare class VerificationCodeScreenComponent extends AuthModuleViewComponent implements OnInit {
    authService: AbstractAuthService;
    customClass: string;
    noOfBox: number;
    handleEdit: EventEmitter<void>;
    resendInfo: {
        retriesMax: number;
        retries: number;
    };
    secondsLeft: number;
    secondsLeft$: Observable<number>;
    form: FormControl<string>;
    constructor(authService: AbstractAuthService);
    ngOnInit(): void;
    onSubmit(): void;
    reSendVerificationCode(): void;
    onEdit(): void;
    private buildForm;
    static ɵfac: i0.ɵɵFactoryDeclaration<VerificationCodeScreenComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<VerificationCodeScreenComponent, "lib-verification-code", never, { "customClass": { "alias": "customClass"; "required": false; }; "noOfBox": { "alias": "noOfBox"; "required": false; }; }, { "handleEdit": "handleEdit"; }, never, never, false, never>;
}

/**
 * An implementation of SelectionModel that internally always represents the selection as a
 * multi-selection. This is necessary so that we can recover the full selection if the user
 * switches the listbox from single-selection to multi-selection after initialization.
 *
 * This selection model may report multiple selected values, even if it is in single-selection
 * mode. It is up to the user (AppListbox) to check for invalid selections.
 */
declare class ListboxSelectionModel<T> extends SelectionModel<T> {
    multiple: boolean;
    constructor(multiple?: boolean, initiallySelectedValues?: T[], emitChanges?: boolean, compareWith?: (o1: T, o2: T) => boolean);
    isMultipleSelection(): boolean;
    select(...values: T[]): boolean;
}
/** A selectable option in a listbox. */
declare class AppOption<T = unknown> implements ListKeyManagerOption, Highlightable, OnDestroy {
    /** The id of the option's host element. */
    get id(): string;
    set id(value: string);
    private _id;
    private _generatedId;
    /** The value of this option. */
    value: T;
    /**
     * The text used to locate this item during listbox typeahead. If not specified,
     * the `textContent` of the item will be used.
     */
    typeaheadLabel: string;
    /** Whether this option is disabled. */
    get disabled(): boolean;
    set disabled(value: BooleanInput);
    private _disabled;
    /** The tabindex of the option when it is enabled. */
    get enabledTabIndex(): number | null;
    set enabledTabIndex(value: number | null);
    private _enabledTabIndex?;
    /** The option's host element */
    readonly element: HTMLElement;
    /** The parent listbox this option belongs to. */
    protected readonly listbox: AppListbox<T>;
    /** Emits when the option is destroyed. */
    protected destroyed: Subject<void>;
    /** Emits when the option is clicked. */
    readonly _clicked: Subject<MouseEvent>;
    ngOnDestroy(): void;
    /** Whether this option is selected. */
    isSelected(): boolean;
    /** Whether this option is active. */
    isActive(): boolean;
    /** Toggle the selected state of this option. */
    toggle(): void;
    /** Select this option if it is not selected. */
    select(): void;
    /** Deselect this option if it is selected. */
    deselect(): void;
    /** Focus this option. */
    focus(): void;
    /** Get the label for this element which is required by the FocusableOption interface. */
    getLabel(): string;
    /**
     * No-op implemented as a part of `Highlightable`.
     * @docs-private
     */
    setActiveStyles(): void;
    /**
     * No-op implemented as a part of `Highlightable`.
     * @docs-private
     */
    setInactiveStyles(): void;
    /** Handle focus events on the option. */
    protected _handleFocus(): void;
    /** Get the tabindex for this option. */
    protected _getTabIndex(): number | null;
    static ɵfac: i0.ɵɵFactoryDeclaration<AppOption<any>, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<AppOption<any>, "[appOption]", ["appOption"], { "id": { "alias": "id"; "required": false; }; "value": { "alias": "appOption"; "required": false; }; "typeaheadLabel": { "alias": "appOptionTypeaheadLabel"; "required": false; }; "disabled": { "alias": "appOptionDisabled"; "required": false; }; "enabledTabIndex": { "alias": "tabindex"; "required": false; }; }, {}, never, never, false, never>;
}
declare class AppListbox<T = unknown> implements AfterContentInit, OnDestroy, ControlValueAccessor {
    /** The id of the option's host element. */
    get id(): string;
    set id(value: string);
    private _id;
    private _generatedId;
    /** The tabindex to use when the listbox is enabled. */
    get enabledTabIndex(): number | null;
    set enabledTabIndex(value: number | null);
    private _enabledTabIndex?;
    /** The value selected in the listbox, represented as an array of option values. */
    get value(): readonly T[];
    set value(value: readonly T[]);
    /**
     * Whether the listbox allows multiple options to be selected. If the value switches from `true`
     * to `false`, and more than one option is selected, all options are deselected.
     */
    get multiple(): boolean;
    set multiple(value: BooleanInput);
    /** Whether the listbox is disabled. */
    get disabled(): boolean;
    set disabled(value: BooleanInput);
    private _disabled;
    /** Whether the listbox will use active descendant or will move focus onto the options. */
    get useActiveDescendant(): boolean;
    set useActiveDescendant(shouldUseActiveDescendant: BooleanInput);
    private _useActiveDescendant;
    /** The orientation of the listbox. Only affects keyboard interaction, not visual layout. */
    get orientation(): "horizontal" | "vertical";
    set orientation(value: 'horizontal' | 'vertical');
    private _orientation;
    /** The function used to compare option values. */
    get compareWith(): undefined | ((o1: T, o2: T) => boolean);
    set compareWith(fn: undefined | ((o1: T, o2: T) => boolean));
    /**
     * Whether the keyboard navigation should wrap when the user presses arrow down on the last item
     * or arrow up on the first item.
     */
    get navigationWrapDisabled(): BooleanInput;
    set navigationWrapDisabled(wrap: BooleanInput);
    private _navigationWrapDisabled;
    /** Whether keyboard navigation should skip over disabled items. */
    get navigateDisabledOptions(): BooleanInput;
    set navigateDisabledOptions(skip: BooleanInput);
    private _navigateDisabledOptions;
    /** Emits when the selected value(s) in the listbox change. */
    readonly valueChange: Subject<IListboxValueChangeEvent<T>>;
    /** The child options in this listbox. */
    protected options: QueryList<AppOption<T>>;
    /** The selection model used by the listbox. */
    protected selectionModel: ListboxSelectionModel<T>;
    /** The key manager that manages keyboard navigation for this listbox. */
    protected listKeyManager: ActiveDescendantKeyManager<AppOption<T>>;
    /** Emits when the listbox is destroyed. */
    protected readonly destroyed: Subject<void>;
    /** The host element of the listbox. */
    protected readonly element: HTMLElement;
    /** The change detector for this listbox. */
    protected readonly changeDetectorRef: ChangeDetectorRef;
    /** Whether the currently selected value in the selection model is invalid. */
    private _invalid;
    /** The last user-triggered option. */
    private _lastTriggered;
    /** Callback called when the listbox has been touched */
    private _onTouched;
    /** Callback called when the listbox value changes */
    private _onChange;
    /** Emits when an option has been clicked. */
    private _optionClicked;
    /** The directionality of the page. */
    private readonly _dir;
    /** A predicate that skips disabled options. */
    private readonly _skipDisabledPredicate;
    /** A predicate that does not skip any options. */
    private readonly _skipNonePredicate;
    /** Whether the listbox currently has focus. */
    private _hasFocus;
    get selectionM(): ListboxSelectionModel<T>;
    ngAfterContentInit(): void;
    ngOnDestroy(): void;
    /**
     * Toggle the selected state of the given option.
     * @param option The option to toggle
     */
    toggle(option: AppOption<T>): void;
    /**
     * Toggle the selected state of the given value.
     * @param value The value to toggle
     */
    toggleValue(value: T): void;
    /**
     * Select the given option.
     * @param option The option to select
     */
    select(option: AppOption<T>): void;
    /**
     * Select the given value.
     * @param value The value to select
     */
    selectValue(value: T): void;
    /**
     * Deselect the given option.
     * @param option The option to deselect
     */
    deselect(option: AppOption<T>): void;
    /**
     * Deselect the given value.
     * @param value The value to deselect
     */
    deselectValue(value: T): void;
    /**
     * Set the selected state of all options.
     * @param isSelected The new selected state to set
     */
    setAllSelected(isSelected: boolean): void;
    /**
     * Get whether the given option is selected.
     * @param option The option to get the selected state of
     */
    isSelected(option: AppOption<T>): boolean;
    /**
     * Get whether the given option is active.
     * @param option The option to get the active state of
     */
    isActive(option: AppOption<T>): boolean;
    /**
     * Get whether the given value is selected.
     * @param value The value to get the selected state of
     */
    isValueSelected(value: T): boolean;
    /**
     * Registers a callback to be invoked when the listbox's value changes from user input.
     * @param fn The callback to register
     * @docs-private
     */
    registerOnChange(fn: (value: readonly T[]) => void): void;
    /**
     * Registers a callback to be invoked when the listbox is blurred by the user.
     * @param fn The callback to register
     * @docs-private
     */
    registerOnTouched(fn: () => {}): void;
    /**
     * Sets the listbox's value.
     * @param value The new value of the listbox
     * @docs-private
     */
    writeValue(value: readonly T[]): void;
    /**
     * Sets the disabled state of the listbox.
     * @param isDisabled The new disabled state
     * @docs-private
     */
    setDisabledState(isDisabled: boolean): void;
    /** Focus the listbox's host element. */
    focus(): void;
    /**
     * Triggers the given option in response to user interaction.
     * - In single selection mode: selects the option and deselects any other selected option.
     * - In multi selection mode: toggles the selected state of the option.
     * @param option The option to trigger
     */
    protected triggerOption(option: AppOption<T> | null): void;
    /**
     * Trigger the given range of options in response to user interaction.
     * Should only be called in multi-selection mode.
     * @param trigger The option that was triggered
     * @param from The start index of the options to toggle
     * @param to The end index of the options to toggle
     * @param on Whether to toggle the option range on
     */
    protected triggerRange(trigger: AppOption<T> | null, from: number, to: number, on: boolean): void;
    /**
     * Sets the given option as active.
     * @param option The option to make active
     */
    _setActiveOption(option: AppOption<T>): void;
    /** Called when the listbox receives focus. */
    protected _handleFocus(): void;
    /** Called when the user presses keydown on the listbox. */
    protected _handleKeydown(event: KeyboardEvent): void;
    /** Called when a focus moves into the listbox. */
    protected _handleFocusIn(): void;
    /**
     * Called when the focus leaves an element in the listbox.
     * @param event The focusout event
     */
    protected _handleFocusOut(event: FocusEvent): void;
    /** Get the id of the active option if active descendant is being used. */
    protected _getAriaActiveDescendant(): string | null | undefined;
    /** Get the tabindex for the listbox. */
    protected _getTabIndex(): number | null;
    /** Initialize the key manager. */
    private _initKeyManager;
    /** Focus the active option. */
    private _focusActiveOption;
    /**
     * Set the selected values.
     * @param value The list of new selected values.
     */
    private _setSelection;
    /** Sets the first selected option as first in the keyboard focus order. */
    private _setNextFocusToSelectedOption;
    /** Update the internal value of the listbox based on the selection model. */
    private _updateInternalValue;
    /**
     * Gets the index of the given value in the given list of options.
     * @param cache The cache of indices found so far
     * @param value The value to find
     * @return The index of the value in the options list
     */
    private _getIndexForValue;
    /**
     * Handle the user clicking an option.
     * @param option The option that was clicked.
     */
    private _handleOptionClicked;
    /** Verifies that no two options represent the same value under the compareWith function. */
    private _verifyNoOptionValueCollisions;
    /** Verifies that the option values are valid. */
    private _verifyOptionValues;
    /**
     * Coerces a value into an array representing a listbox selection.
     * @param value The value to coerce
     * @return An array
     */
    private _coerceValue;
    /**
     * Get the sublist of values that do not represent valid option values in this listbox.
     * @param values The list of values
     * @return The sublist of values that are not valid option values
     */
    private _getInvalidOptionValues;
    /** Get the index of the last triggered option. */
    private _getLastTriggeredIndex;
    static ɵfac: i0.ɵɵFactoryDeclaration<AppListbox<any>, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<AppListbox<any>, "[appListbox]", ["appListbox"], { "id": { "alias": "id"; "required": false; }; "enabledTabIndex": { "alias": "tabindex"; "required": false; }; "value": { "alias": "listboxValue"; "required": false; }; "multiple": { "alias": "listboxMultiple"; "required": false; }; "disabled": { "alias": "listboxDisabled"; "required": false; }; "useActiveDescendant": { "alias": "listboxUseActiveDescendant"; "required": false; }; "orientation": { "alias": "listboxOrientation"; "required": false; }; "compareWith": { "alias": "listboxCompareWith"; "required": false; }; "navigationWrapDisabled": { "alias": "listboxNavigationWrapDisabled"; "required": false; }; "navigateDisabledOptions": { "alias": "listboxNavigatesDisabledOptions"; "required": false; }; }, { "valueChange": "listboxValueChange"; }, ["options"], never, false, never>;
}
/** Change event that is fired whenever the value of the listbox changes. */
interface IListboxValueChangeEvent<T> {
    /** The new value of the listbox. */
    readonly value: readonly T[];
    /** Reference to the listbox that emitted the event. */
    readonly listbox: AppListbox<T>;
    /** Reference to the option that was triggered. */
    readonly option: AppOption<T> | null;
}

declare class ResizedEvent {
    newRect: ResizeObserverSize;
    oldRect?: DOMRectReadOnly;
    isFirst: boolean;
    constructor(newRect: ResizeObserverSize, oldRect: DOMRectReadOnly | undefined);
}

/**
 * Copied from
 * https://github.com/vdolek/angular-resize-event
 */
declare class ResizedDirective implements OnInit, OnDestroy {
    private readonly element;
    private readonly zone;
    private observer;
    private oldRect?;
    readonly resized: EventEmitter<ResizedEvent>;
    constructor(element: ElementRef, zone: NgZone);
    ngOnInit(): void;
    ngOnDestroy(): void;
    private observe;
    static ɵfac: i0.ɵɵFactoryDeclaration<ResizedDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<ResizedDirective, "[resized]", never, {}, { "resized": "resized"; }, never, never, false, never>;
}

declare class LazyImageDirective {
    constructor({ nativeElement }: ElementRef<HTMLImageElement>);
    static ɵfac: i0.ɵɵFactoryDeclaration<LazyImageDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<LazyImageDirective, "img", never, {}, {}, never, never, false, never>;
}

declare class AutoFocusDirective implements AfterViewChecked {
    private host;
    autoFocus: boolean;
    constructor(host: ElementRef);
    ngAfterViewChecked(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AutoFocusDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<AutoFocusDirective, "[autoFocus]", never, { "autoFocus": { "alias": "autoFocus"; "required": false; }; }, {}, never, never, false, never>;
}

declare class DebounceClickDirective implements OnInit, OnDestroy {
    debounceTime: number;
    debounceClick: EventEmitter<any>;
    private clicks;
    private subscription;
    ngOnInit(): void;
    ngOnDestroy(): void;
    clickEvent(event: Event): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DebounceClickDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<DebounceClickDirective, "[appDebounceClick]", never, { "debounceTime": { "alias": "debounceTime"; "required": false; }; }, { "debounceClick": "debounceClick"; }, never, never, false, never>;
}

declare class DisableControlDirective implements OnInit {
    private ngControl;
    set disableControl(condition: boolean);
    constructor(ngControl: NgControl);
    ngOnInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DisableControlDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<DisableControlDirective, "[disableControl]", never, { "disableControl": { "alias": "disableControl"; "required": false; }; }, {}, never, never, false, never>;
}

interface IPopupModal {
    icon?: any;
    title?: string;
    message?: string;
    cancelButton?: string;
    confirmButton?: string;
    checkboxText?: string;
    progBarCurrentStep?: number;
    progBarTotalSteps?: number;
    extendedMessage?: string;
    customClass?: string;
    backdropDismiss?: boolean;
}

declare class LibModalComponent {
    private cdr;
    isOpen: boolean;
    icon: string | null;
    title: string;
    message: string;
    extendedMessage: string;
    cancelButton: string;
    confirmButton: string;
    checkboxText: string;
    progBarCurrentStep: number;
    progBarTotalSteps: number;
    customClass: string;
    backdropDismiss: boolean;
    modalConfirm: EventEmitter<boolean>;
    modalDismiss: EventEmitter<boolean>;
    afterCloseEvent: EventEmitter<unknown>;
    modalComponent: Type<unknown>;
    modalComponentData: unknown;
    confirmationControl: FormControl<boolean>;
    afterClose: Observable<any>;
    constructor(cdr: ChangeDetectorRef);
    handleModalDismiss(): void;
    handleModalConfirm(): void;
    show(component?: Type<unknown>, data?: unknown, func1?: unknown, func2?: unknown): LibModalComponent;
    hide(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<LibModalComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<LibModalComponent, "lib-popup", never, { "isOpen": { "alias": "isOpen"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "title": { "alias": "title"; "required": false; }; "message": { "alias": "message"; "required": false; }; "extendedMessage": { "alias": "extendedMessage"; "required": false; }; "cancelButton": { "alias": "cancelButton"; "required": false; }; "confirmButton": { "alias": "confirmButton"; "required": false; }; "checkboxText": { "alias": "checkboxText"; "required": false; }; "progBarCurrentStep": { "alias": "progBarCurrentStep"; "required": false; }; "progBarTotalSteps": { "alias": "progBarTotalSteps"; "required": false; }; "customClass": { "alias": "customClass"; "required": false; }; "backdropDismiss": { "alias": "backdropDismiss"; "required": false; }; "modalComponent": { "alias": "modalComponent"; "required": false; }; "modalComponentData": { "alias": "modalComponentData"; "required": false; }; }, { "modalConfirm": "modalConfirm"; "modalDismiss": "modalDismiss"; "afterCloseEvent": "afterCloseEvent"; }, never, ["*"], false, never>;
}

type Content<T> = string | TemplateRef<T> | Type<T>;
declare class PopupModalService {
    private platform;
    private zone;
    private rootViewContainerRef;
    private ref;
    private backButtonSubscription;
    private _childModalElementRef$;
    childModalElementRef$: Observable<ElementRef<HTMLDivElement>>;
    constructor(platform: Platform, zone: NgZone);
    setRootViewContainerRef(view: ViewContainerRef): void;
    reset(): void;
    insertModalComponent<T>(content?: Content<T> | null): void;
    resolveNgContent<T>(content: Content<T>): Node[][];
    getInstance(): ComponentRef<LibModalComponent>;
    setInstance(instance: ComponentRef<LibModalComponent>): void;
    show<T, D>(component?: Type<T>, data?: D, newInstance?: boolean): LibModalComponent;
    hide(data?: unknown): void;
    isOpenStatus(): boolean;
    setValues(obj?: IPopupModal | null): void;
    setChildModalElementRef(elementRef: ElementRef<HTMLDivElement>): void;
    /**
     * Registers a high-priority back button handler.
     * When the modal is open, this will intercept the back button
     * press and call hide() instead of letting the router navigate back.
     */
    private registerBackButtonHandler;
    /**
     * Removes the custom back button handler.
     */
    private unregisterBackButtonHandler;
    static ɵfac: i0.ɵɵFactoryDeclaration<PopupModalService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<PopupModalService>;
}

declare class SubmitOnEnterDirective {
    private modalFactoryService;
    private router;
    private activatedRoute;
    enter: EventEmitter<boolean>;
    private activeUrl;
    constructor(modalFactoryService: PopupModalService, router: Router, activatedRoute: ActivatedRoute);
    handleKeyPress(event: KeyboardEvent): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SubmitOnEnterDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<SubmitOnEnterDirective, "[submitOnEnter]", never, {}, { "enter": "enter"; }, never, never, false, never>;
}

declare class LongPressDirective implements OnDestroy {
    /** Delay (ms) before a press is considered “long” */
    pressDelay: number;
    /** Global on/off flag; if `false` every press is treated as short */
    longPressEnabled: boolean;
    /** Emits when the user releases before `pressDelay` */
    shortPress: EventEmitter<PointerEvent>;
    /** Emits after `pressDelay` if the pointer is still down */
    longPress: EventEmitter<PointerEvent>;
    private pressTimer;
    private pressStart;
    onPointerDown(event: PointerEvent): void;
    onPointerUp(event: PointerEvent): void;
    onPointerCancel(): void;
    ngOnDestroy(): void;
    private clearTimer;
    static ɵfac: i0.ɵɵFactoryDeclaration<LongPressDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<LongPressDirective, "[libLongPress]", never, { "pressDelay": { "alias": "pressDelay"; "required": false; }; "longPressEnabled": { "alias": "longPressEnabled"; "required": false; }; }, { "shortPress": "shortPress"; "longPress": "longPress"; }, never, never, false, never>;
}

declare enum Direction {
    horizontal = "horizontal",
    vertical = "vertical"
}

/**
 * DraggableScrollDirective
 *
 * NOTE: This directive uses standalone: true as part of the migration to Angular standalone components.
 * When importing this directive, use: import { DraggableScrollDirective } from '...'
 */
declare class DraggableScrollDirective implements AfterViewInit, OnDestroy, OnChanges {
    includeSidePadding: boolean;
    direction: Direction;
    initialCenter: boolean;
    /** Fixed pixel width for each slide. Overrides Swiper's default max-width:100% constraint. */
    slideWidth: number | null;
    private swiper;
    private readonly hostElement;
    private readonly renderer;
    private wrapperElement;
    private leadingSpacer?;
    private trailingSpacer?;
    private viewInitialized;
    private resizeTimeout;
    private mutationObserver;
    ngOnChanges(changes: SimpleChanges): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    /**
     * Handles window resize events with debouncing to improve performance.
     * Updates spacer widths after a 100ms delay to avoid excessive calculations during rapid resize events.
     */
    handleResize(): void;
    private observeHostForLateChildren;
    private applySlideWidth;
    private ensureSpacerElements;
    private setSpacerWidths;
    private centerContent;
    private createSpacerElement;
    static ɵfac: i0.ɵɵFactoryDeclaration<DraggableScrollDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<DraggableScrollDirective, "[libDraggableScroll]", never, { "includeSidePadding": { "alias": "includeSidePadding"; "required": false; }; "direction": { "alias": "direction"; "required": false; }; "initialCenter": { "alias": "initialCenter"; "required": false; }; "slideWidth": { "alias": "slideWidth"; "required": false; }; }, {}, never, never, true, never>;
}

declare class DirectiveModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<DirectiveModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<DirectiveModule, [typeof AppListbox, typeof AppOption, typeof ResizedDirective, typeof LazyImageDirective, typeof AutoFocusDirective, typeof DebounceClickDirective, typeof DisableControlDirective, typeof SubmitOnEnterDirective, typeof LongPressDirective], [typeof i2.CommonModule, typeof DraggableScrollDirective], [typeof AppListbox, typeof AppOption, typeof ResizedDirective, typeof LazyImageDirective, typeof AutoFocusDirective, typeof DebounceClickDirective, typeof DisableControlDirective, typeof SubmitOnEnterDirective, typeof LongPressDirective, typeof DraggableScrollDirective]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<DirectiveModule>;
}

declare class OtpInputComponent implements AfterViewInit, OnChanges, OnDestroy {
    private cdr;
    length: number;
    placeholder: string;
    formCtrl: FormControl;
    ngOtpInputComponent: NgOtpInputComponent;
    loading: boolean;
    internalCtrl: FormControl<string>;
    private formatted$;
    componentDestroyed$: Subject<void>;
    constructor(cdr: ChangeDetectorRef);
    ngOnChanges(changes: SimpleChanges): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    resetOtpInput(): void;
    private setupDebouncedEmitter;
    handleOtpChange(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<OtpInputComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<OtpInputComponent, "lib-otp-input", never, { "length": { "alias": "length"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "formCtrl": { "alias": "formCtrl"; "required": false; }; }, {}, never, never, false, never>;
}

declare class OtpInputModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<OtpInputModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<OtpInputModule, [typeof OtpInputComponent], [typeof i2.CommonModule, typeof DirectiveModule, typeof i4.FormsModule, typeof i4.ReactiveFormsModule, typeof i3.IonicModule, typeof i6.MatInputModule, typeof i7.MatButtonModule, typeof i13.MatIconModule, typeof i4$1.TranslateModule, typeof i10.NgOtpInputModule], [typeof OtpInputComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<OtpInputModule>;
}

interface ILocationModel {
    coordinates: number[];
    address: string;
}
interface ILocationCoordinates {
    lat: number;
    lng: number;
}
interface ILocationAutocompleteConfig {
    types?: string[];
}
interface ILocationSearchResult {
    address: string;
    lat: number;
    lng: number;
}

interface IPosition {
    lat: number;
    lng: number;
    address?: string;
}
type PositionCallback = (position: IPosition) => void;

interface IMapMarkerModel {
    id: string;
    position: google.maps.LatLngLiteral;
    radius: number;
    icon: string | google.maps.Icon | google.maps.Symbol;
    content?: HTMLElement;
    omitMarkerCircle?: boolean;
}

interface IMapData {
    locations: string[];
    markers: IMapMarkerModel[];
}

type MapObjectAddressType = {
    streetNumber?: string;
    streetName?: string;
    town?: string;
    city?: string;
    state?: string;
    country?: string;
};

type MapAddressType = {
    objectAdress: MapObjectAddressType;
    formattedAddress: string;
};

declare enum PlaceTypes {
    Accounting = "accounting",
    Airport = "airport",
    AmusementPark = "amusement_park",
    Aquarium = "aquarium",
    ArtGallery = "art_gallery",
    ATM = "atm",
    Bakery = "bakery",
    Bank = "bank",
    Bar = "bar",
    BeautySalon = "beauty_salon",
    BicycleStore = "bicycle_store",
    BookStore = "book_store",
    BowlingAlley = "bowling_alley",
    BusStation = "bus_station",
    Cafe = "cafe",
    Campground = "campground",
    CarDealer = "car_dealer",
    CarRental = "car_rental",
    CarRepair = "car_repair",
    CarWash = "car_wash",
    Casino = "casino",
    CityHall = "city_hall",
    ClothingStore = "clothing_store",
    ConvenienceStore = "convenience_store",
    Courthouse = "courthouse",
    Dentist = "dentist",
    DepartmentStore = "department_store",
    Doctor = "doctor",
    Electrician = "electrician",
    ElectronicsStore = "electronics_store",
    Embassy = "embassy",
    FireStation = "fire_station",
    Florist = "florist",
    FuneralHome = "funeral_home",
    FurnitureStore = "furniture_store",
    GasStation = "gas_station",
    Gym = "gym",
    HairCare = "hair_care",
    HardwareStore = "hardware_store",
    HinduTemple = "hindu_temple",
    HomeGoodsStore = "home_goods_store",
    Hospital = "hospital",
    InsuranceAgency = "insurance_agency",
    JewelryStore = "jewelry_store",
    Laundry = "laundry",
    Library = "library",
    LiquorStore = "liquor_store",
    LocalGovernmentOffice = "local_government_office",
    Locksmith = "locksmith",
    Lodging = "lodging",
    MealDelivery = "meal_delivery",
    MealTakeaway = "meal_takeaway",
    Mosque = "mosque",
    MovieRental = "movie_rental",
    MovieTheater = "movie_theater",
    MovingCompany = "moving_company",
    Museum = "museum",
    NightClub = "night_club",
    Painter = "painter",
    Park = "park",
    Parking = "parking",
    PetStore = "pet_store",
    Pharmacy = "pharmacy",
    Physiotherapist = "physiotherapist",
    PlaceOfWorship = "place_of_worship",
    Plumber = "plumber",
    Police = "police",
    PostOffice = "post_office",
    RealEstateAgency = "real_estate_agency",
    Restaurant = "restaurant",
    RoofingContractor = "roofing_contractor",
    RVPark = "rv_park",
    School = "school",
    ShoeStore = "shoe_store",
    ShoppingMall = "shopping_mall",
    Spa = "spa",
    Stadium = "stadium",
    Storage = "storage",
    Store = "store",
    SubwayStation = "subway_station",
    Synagogue = "synagogue",
    TaxiStand = "taxi_stand",
    TrainStation = "train_station",
    TransitStation = "transit_station",
    TravelAgency = "travel_agency",
    University = "university",
    VeterinaryCare = "veterinary_care",
    Zoo = "zoo"
}

interface IPlaceQuery {
    location: ILocationCoordinates;
    types: PlaceTypes[];
    radius: number;
    language?: string;
    rankby?: 'prominence' | 'distance';
}

interface IPlace {
    name: string;
    icon: string;
    types: string[];
    rating: number;
    vicinity: string;
    url: string;
    place_id: string;
    geometry: {
        location: {
            lat: () => number;
            lng: () => number;
        };
    };
}

declare class MapService {
    private readonly rendererFactory;
    private readonly mapLibService;
    private googleMapsKey;
    private googleMapsURL;
    private googleMapsMapId;
    private renderer;
    private scriptElement;
    private _updateLocations$;
    private _googleApiLoader$;
    private useMapLib;
    onUpdateLocations: Observable<IMapData>;
    constructor();
    /**
     * Enable map-lib usage (AWS/TripAdvisor) instead of Google Maps
     */
    enableMapLib(): void;
    setGoogleMapsKey(key: string): void;
    getGoogleMapsKey(): string;
    setGoogleMapsURL(url: string): void;
    getGoogleMapsURL(): string;
    setGoogleMapsMapId(mapId: string): void;
    getGoogleMapsMapId(): string;
    matchesGoogleMapsApiKey(googleMapsAPIKey: string): boolean;
    /**
     * Loads the Google Maps API, optionally reloading if already loaded unless `reloadApi` is set to `false`.
     *
     * @param {boolean} [reloadApi=true] - A flag to determine whether to reload the API if it has already been loaded. Defaults to `true`, meaning the API will be unloaded and loaded by default.
     * @return {Observable<boolean>} - An observable that emits `true` when the API has been successfully loaded.
     */
    loadGoogleApis(reloadApi?: boolean): Observable<boolean>;
    /**
     * Unloads the Google Maps API by removing associated script tags from the DOM and clearing the global `google` object.
     *
     * @return {Observable<boolean>} - An observable that emits `true` if the Google Maps API was successfully unloaded,
     * or `false` if the API was not loaded or an error occurred.
     *
     * @example
     * // To unsubscribe from the Google Maps API:
     * this.unloadGoogleMapApis().subscribe((result) => {
     *   console.log(result ? 'API unloaded successfully' : 'API unload failure');
     * });
     */
    unloadGoogleMapApis(): Observable<boolean>;
    buildMapMarker(id: string, icon: string, position: IPosition, radius?: number, customClass?: string, iconWidth?: number, iconHeight?: number, omitMarkerCircle?: boolean, anchor?: google.maps.Point | {
        x: number;
        y: number;
    } | null): IMapMarkerModel;
    getAddressObject(location: google.maps.LatLngLiteral): Observable<MapAddressType>;
    getMapAddressString(location: google.maps.LatLngLiteral): Observable<string>;
    getBatchAddresses(locations: google.maps.LatLngLiteral[]): Observable<string[]>;
    getCoordinatesFromAddress(address: string): Observable<{
        lat: number;
        lng: number;
    }>;
    findNearbyPlaces(query: IPlaceQuery): Observable<IPlace[]>;
    /**
     * Builds a map marker by the provided index.
     *
     * @param {number} index - The index of the marker.
     * @param {PositionModel} position - The position of the marker.
     * @param {number} radius - The radius of the marker.
     * @return {IMapMarkerModel} - The built map marker.
     */
    private buildMapMarkerByIndex;
    /**
     * Updates the locations and markers by emitting the provided payload.
     *
     * @param {{ locations: string[], markers: IMapMarkerModel[] }} payload - The updated locations and markers.
     */
    updateLocations(payload: IMapData): void;
    /**
     * Moves a location and its corresponding marker from one index to another.
     *
     * @param {number} fromIndex - The current index of the location.
     * @param {number} toIndex - The target index to move the location to.
     * @param {string[]} locations - The array of locations.
     * @param {IMapMarkerModel[]} markers - The array of map markers.
     */
    moveLocation(fromIndex: number, toIndex: number, locations: string[], markers: IMapMarkerModel[]): void;
    /**
     * Removes a location and its corresponding marker by index.
     *
     * @param {number} index - The index of the location to be removed.
     * @param {string[]} locations - The array of locations.
     * @param {IMapMarkerModel[]} markers - The array of map markers.
     */
    removeLocation(index: number, locations: string[], markers: IMapMarkerModel[]): void;
    /**
     * Adds a new location to the existing set of locations.
     *
     * @param {Location} newLocation - The new location to add.
     * @param {string[]} locations - The array of locations.
     * @param {IMapMarkerModel[]} markers - The array of map markers.
     * @return {void}
     */
    addLocation({ address, position }: {
        address: string;
        position: google.maps.LatLngLiteral;
    }, locations: string[], markers: IMapMarkerModel[]): void;
    /**
     * Edits an existing location by updating its address and position.
     *
     * @param {Object} updatedLocation - The location to edit.
     * @param {number} updatedLocation.index - The index of the location to edit.
     * @param {string} updatedLocation.address - The new address.
     * @param {google.maps.LatLngLiteral} updatedLocation.position - The new position.
     * @param {string[]} locations - The array of locations.
     * @param {IMapMarkerModel[]} markers - The array of map markers.
     * @return {void}
     */
    editLocation({ index, address, position }: {
        index: number;
        address: string;
        position: google.maps.LatLngLiteral;
    }, locations: string[], markers: IMapMarkerModel[]): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<MapService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<MapService>;
}

declare class InputFieldComponent<T = string> implements ControlValueAccessor, AfterViewInit, OnDestroy {
    private ngZone;
    private cdr;
    private mapService;
    name: string;
    autocomplete: string;
    label: string;
    placeholder: string;
    type: string;
    readonly: boolean;
    focus: boolean;
    enableGoogleAddress: boolean;
    locationAutocompleteConfig: ILocationAutocompleteConfig;
    defaultLocation: ILocationCoordinates | null;
    mask: string;
    prefix: string;
    suffix: string;
    maxLength: string;
    address: string;
    textarea: boolean;
    resize: boolean;
    counter: boolean;
    patterns: NgxMaskConfig['patterns'] | null;
    trimWhiteSpace: boolean;
    disabled: boolean;
    locationSearchFn: ((query: string) => Observable<ILocationSearchResult[]>) | null;
    locationSearchDebounce: number;
    locationSearchMinLength: number;
    mapError: EventEmitter<void>;
    locationChange: EventEmitter<ILocationModel>;
    keyDown: EventEmitter<KeyboardEvent>;
    onBlur: EventEmitter<void>;
    inputFieldRef: ElementRef;
    apiLoaded: boolean;
    placeSelected: boolean;
    locationSuggestions: ILocationSearchResult[];
    showSuggestions: boolean;
    readonly valueControl: FormControl<string>;
    private readonly destroyRef;
    private searchInput$;
    private searchSub;
    private suppressNextSearch;
    constructor(ngZone: NgZone, cdr: ChangeDetectorRef, mapService: MapService);
    get inputRef(): HTMLInputElement;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    onChange(value: any): void;
    onTouched(touched: boolean): void;
    writeValue(value: string | T): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    touched(touched: boolean): void;
    setDisabledState(isDisabled: boolean): void;
    focused(): void;
    initAutocomplete(): void;
    private onPlaceChange;
    selectLocationSuggestion(suggestion: ILocationSearchResult): void;
    hideSuggestionsDelayed(): void;
    onLocationKeydown(event: KeyboardEvent): void;
    private initLocationSearch;
    detectAutofill(event: any): void;
    onKeyDown(event: KeyboardEvent): void;
    onKeyDownTextArea(event: KeyboardEvent): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<InputFieldComponent<any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<InputFieldComponent<any>, "lib-input-field,[lib-input-field]", never, { "name": { "alias": "name"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "type": { "alias": "type"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "focus": { "alias": "focus"; "required": false; }; "enableGoogleAddress": { "alias": "enableGoogleAddress"; "required": false; }; "locationAutocompleteConfig": { "alias": "locationAutocompleteConfig"; "required": false; }; "defaultLocation": { "alias": "defaultLocation"; "required": false; }; "mask": { "alias": "mask"; "required": false; }; "prefix": { "alias": "prefix"; "required": false; }; "suffix": { "alias": "suffix"; "required": false; }; "maxLength": { "alias": "maxLength"; "required": false; }; "address": { "alias": "address"; "required": false; }; "textarea": { "alias": "textarea"; "required": false; }; "resize": { "alias": "resize"; "required": false; }; "counter": { "alias": "counter"; "required": false; }; "patterns": { "alias": "patterns"; "required": false; }; "trimWhiteSpace": { "alias": "trimWhiteSpace"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "locationSearchFn": { "alias": "locationSearchFn"; "required": false; }; "locationSearchDebounce": { "alias": "locationSearchDebounce"; "required": false; }; "locationSearchMinLength": { "alias": "locationSearchMinLength"; "required": false; }; }, { "mapError": "mapError"; "locationChange": "locationChange"; "keyDown": "keyDown"; "onBlur": "onBlur"; }, never, never, false, never>;
}

declare class ImageModel {
    image: string;
    fileName: string;
    orientation?: number;
    moreThan2mb?: boolean;
    constainsFace?: boolean;
    isSafeForWork?: boolean;
    dupName?: string;
    invalid?: boolean;
    deactivated?: boolean;
    isDark: boolean;
    croppedCoordinates?: CropperPosition;
}

interface ImageCropperModel {
    images: ImageModel[];
    aspectRatio?: number;
    imageSizeMap?: boolean[];
    faceChecker?: (image: string) => Observable<boolean>;
    nsfwChecker?: (image: string) => Observable<boolean>;
    maxNumOfPhotos?: number;
    enableNsfwCheck?: boolean;
    enableFaceCheck?: boolean;
    imageDeactivationToggleIcon?: string;
}
interface ICroppedImageModel {
    image: string;
    cropped?: boolean;
}

declare class ImageCropperService {
    private popupModalService;
    constructor(popupModalService: PopupModalService);
    openImageCropper(data: ImageCropperModel): Observable<string[]>;
    static ɵfac: i0.ɵɵFactoryDeclaration<ImageCropperService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ImageCropperService>;
}

declare enum ImageFormats {
    JPG = "jpg",
    JPEG = "jpeg",
    PNG = "png",
    GIF = "gif",
    BMP = "bmp",
    WEBP = "webp"
}

declare class ImageBaseComponent {
    private imageCompressService;
    private imageCropperService;
    imageUrl: string;
    imageLabel: string;
    maxNumOfPhotos: number;
    minPhotos: number;
    loading: boolean;
    disabled: boolean;
    enableDelete: boolean;
    /** When true, shows the delete button even if imageUrl hasn't resolved yet (e.g. S3 presign pending) */
    hasImage: boolean;
    enableCropper: boolean;
    imageFormats: ImageFormats[];
    cropperModalViewRef: ViewContainerRef;
    enableCompression: boolean;
    maxImageSizeInBytes: number;
    maxImageCompressSizeInBytes: number;
    photoAspectRatio: number;
    photos: ImageModel[];
    disableUploadOnClick: boolean;
    faceDetector: (images: string) => Observable<boolean>;
    nsfwChecker: (images: string) => Observable<boolean>;
    enableNsfwCheck: boolean;
    enableFaceCheck: boolean;
    compressRatio: number;
    compressQuality: number;
    /**
     * When true, allows video uploads (mp4, webm, quicktime); compression is skipped for video.
     * Overridden on `ImageCardComponent` with `@Input()`.
     */
    protected allowVideo: boolean;
    photosUpload: EventEmitter<ImageModel[]>;
    photoUploadFail: EventEmitter<string>;
    dupPhotosDetect: EventEmitter<number>;
    unsupportedFormatsDetect: EventEmitter<string[]>;
    maxUploadLimitExceeded: EventEmitter<null>;
    private newImages;
    constructor(imageCompressService: NgxImageCompressService, imageCropperService: ImageCropperService);
    onSelectImages(imageFiles: ImageModel[]): void;
    private validateImages;
    protected isVideoDataUrl(url: string): boolean;
    private compressImages;
    private compressImage;
    static ɵfac: i0.ɵɵFactoryDeclaration<ImageBaseComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ImageBaseComponent, "lib-image-base", never, { "imageUrl": { "alias": "imageUrl"; "required": false; }; "imageLabel": { "alias": "imageLabel"; "required": false; }; "maxNumOfPhotos": { "alias": "maxNumOfPhotos"; "required": false; }; "minPhotos": { "alias": "minPhotos"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "enableDelete": { "alias": "enableDelete"; "required": false; }; "hasImage": { "alias": "hasImage"; "required": false; }; "enableCropper": { "alias": "enableCropper"; "required": false; }; "imageFormats": { "alias": "imageFormats"; "required": false; }; "cropperModalViewRef": { "alias": "cropperModalViewRef"; "required": false; }; "enableCompression": { "alias": "enableCompression"; "required": false; }; "maxImageSizeInBytes": { "alias": "maxImageSizeInBytes"; "required": false; }; "maxImageCompressSizeInBytes": { "alias": "maxImageCompressSizeInBytes"; "required": false; }; "photoAspectRatio": { "alias": "photoAspectRatio"; "required": false; }; "photos": { "alias": "photos"; "required": false; }; "disableUploadOnClick": { "alias": "disableUploadOnClick"; "required": false; }; "faceDetector": { "alias": "faceDetector"; "required": false; }; "nsfwChecker": { "alias": "nsfwChecker"; "required": false; }; "enableNsfwCheck": { "alias": "enableNsfwCheck"; "required": false; }; "enableFaceCheck": { "alias": "enableFaceCheck"; "required": false; }; "compressRatio": { "alias": "compressRatio"; "required": false; }; "compressQuality": { "alias": "compressQuality"; "required": false; }; }, { "photosUpload": "photosUpload"; "photoUploadFail": "photoUploadFail"; "dupPhotosDetect": "dupPhotosDetect"; "unsupportedFormatsDetect": "unsupportedFormatsDetect"; "maxUploadLimitExceeded": "maxUploadLimitExceeded"; }, never, ["*"], false, never>;
}

interface IFileUploadResult {
    image: string;
    fileName: string;
    orientation: number;
}

declare class ImageCardComponent extends ImageBaseComponent {
    private imageCompress;
    private imageCropper;
    private cdr;
    allowVideo: boolean;
    enableDrag: boolean;
    fileInput?: ElementRef<HTMLInputElement>;
    removeImage: EventEmitter<void>;
    constructor(imageCompress: NgxImageCompressService, imageCropper: ImageCropperService, cdr: ChangeDetectorRef);
    onRemoveImage(event: Event): void;
    selectImages(): void;
    onFileInputChange(event: Event): Promise<void>;
    processFiles(files: File[]): Promise<IFileUploadResult[]>;
    isVideoDataUrl(url: string): boolean;
    private readFileAsDataUrl;
    static ɵfac: i0.ɵɵFactoryDeclaration<ImageCardComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ImageCardComponent, "lib-image-card", never, { "allowVideo": { "alias": "allowVideo"; "required": false; }; "enableDrag": { "alias": "enableDrag"; "required": false; }; }, { "removeImage": "removeImage"; }, never, never, false, never>;
}

/**
 * All the logic that previously was in BaseBtnComponent (inputs and methods)
 * extracted to a 'pure' class without Angular decorators
 */
declare class BaseBtnLogic {
    hoverOutline: boolean;
    disabled: boolean;
    type: string;
    form: string;
    label: string;
    showArrowIcon: boolean;
    disableTextShadow: boolean;
    notificationCount: number;
    loading$: Observable<boolean>;
    illuminateIcon: boolean;
    checked: boolean;
    onTouchStart(): void;
    onTouchEnd(): void;
    onBtnContainerClick(event: Event): void;
}

declare class BaseBtnComponent extends BaseBtnLogic {
    hoverOutline: boolean;
    disabled: boolean;
    type: string;
    form: string;
    label: string;
    showArrowIcon: boolean;
    disableTextShadow: boolean;
    notificationCount: number;
    loading$: Observable<boolean>;
    illuminateIcon: boolean;
    checked: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<BaseBtnComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<BaseBtnComponent, "lib-base-btn", never, { "hoverOutline": { "alias": "hoverOutline"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "type": { "alias": "type"; "required": false; }; "form": { "alias": "form"; "required": false; }; "label": { "alias": "label"; "required": false; }; "showArrowIcon": { "alias": "showArrowIcon"; "required": false; }; "disableTextShadow": { "alias": "disableTextShadow"; "required": false; }; "notificationCount": { "alias": "notificationCount"; "required": false; }; "loading$": { "alias": "loading$"; "required": false; }; "illuminateIcon": { "alias": "illuminateIcon"; "required": false; }; "checked": { "alias": "checked"; "required": false; }; }, {}, never, ["*", "[buttonIconContainer]"], false, never>;
}

declare class ChipBtnComponent extends BaseBtnLogic {
    hoverOutline: boolean;
    disabled: boolean;
    type: string;
    form: string;
    label: string;
    showArrowIcon: boolean;
    disableTextShadow: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<ChipBtnComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ChipBtnComponent, "lib-chip-btn", never, { "hoverOutline": { "alias": "hoverOutline"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "type": { "alias": "type"; "required": false; }; "form": { "alias": "form"; "required": false; }; "label": { "alias": "label"; "required": false; }; "showArrowIcon": { "alias": "showArrowIcon"; "required": false; }; "disableTextShadow": { "alias": "disableTextShadow"; "required": false; }; }, {}, never, never, false, never>;
}

declare class PrimaryBtnComponent extends BaseBtnLogic {
    hoverOutline: boolean;
    disabled: boolean;
    type: string;
    form: string;
    label: string;
    showArrowIcon: boolean;
    disableTextShadow: boolean;
    loading$: Observable<boolean>;
    static ɵfac: i0.ɵɵFactoryDeclaration<PrimaryBtnComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<PrimaryBtnComponent, "lib-primary-btn", never, { "hoverOutline": { "alias": "hoverOutline"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "type": { "alias": "type"; "required": false; }; "form": { "alias": "form"; "required": false; }; "label": { "alias": "label"; "required": false; }; "showArrowIcon": { "alias": "showArrowIcon"; "required": false; }; "disableTextShadow": { "alias": "disableTextShadow"; "required": false; }; "loading$": { "alias": "loading$"; "required": false; }; }, {}, never, ["*"], false, never>;
}

declare class SecondaryBtnComponent extends BaseBtnLogic {
    hoverOutline: boolean;
    disabled: boolean;
    type: string;
    form: string;
    label: string;
    showArrowIcon: boolean;
    disableTextShadow: boolean;
    loading$: Observable<boolean>;
    static ɵfac: i0.ɵɵFactoryDeclaration<SecondaryBtnComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SecondaryBtnComponent, "lib-secondary-btn", never, { "hoverOutline": { "alias": "hoverOutline"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "type": { "alias": "type"; "required": false; }; "form": { "alias": "form"; "required": false; }; "label": { "alias": "label"; "required": false; }; "showArrowIcon": { "alias": "showArrowIcon"; "required": false; }; "disableTextShadow": { "alias": "disableTextShadow"; "required": false; }; "loading$": { "alias": "loading$"; "required": false; }; }, {}, never, ["*"], false, never>;
}

declare class MenuBtnComponent extends BaseBtnLogic {
    private readonly cdr;
    menuBtnIcon: boolean;
    menuBtnTooltip: string;
    menuBtnTooltipPosition: TooltipPosition;
    menuBtnIconName: string;
    menuBtnImgUrl: string;
    menuBtnNotificationIconUrl: string;
    menuDirection: 'ltr' | 'rtl';
    hasNotification: boolean;
    menuItems: ILibMenuItem[];
    disableTranslation: boolean;
    listItem: unknown;
    listItemIndex: number;
    selectable: boolean;
    /** CSS class(es) to be applied to the overlay container */
    overlayClass: string;
    /** Booleans that come from the user menu component */
    isUserMenu: boolean;
    onlyCloseOnClickOutside: boolean;
    hoverOutline: boolean;
    disabled: boolean;
    type: string;
    form: string;
    label: string;
    showArrowIcon: boolean;
    disableTextShadow: boolean;
    loading$: Observable<boolean>;
    onImageError(event: Event): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<MenuBtnComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MenuBtnComponent, "lib-menu-btn", never, { "menuBtnIcon": { "alias": "menuBtnIcon"; "required": false; }; "menuBtnTooltip": { "alias": "menuBtnTooltip"; "required": false; }; "menuBtnTooltipPosition": { "alias": "menuBtnTooltipPosition"; "required": false; }; "menuBtnIconName": { "alias": "menuBtnIconName"; "required": false; }; "menuBtnImgUrl": { "alias": "menuBtnImgUrl"; "required": false; }; "menuBtnNotificationIconUrl": { "alias": "menuBtnNotificationIconUrl"; "required": false; }; "menuDirection": { "alias": "menuDirection"; "required": false; }; "hasNotification": { "alias": "hasNotification"; "required": false; }; "menuItems": { "alias": "menuItems"; "required": false; }; "disableTranslation": { "alias": "disableTranslation"; "required": false; }; "listItem": { "alias": "listItem"; "required": false; }; "listItemIndex": { "alias": "listItemIndex"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; }; "overlayClass": { "alias": "overlayClass"; "required": false; }; "isUserMenu": { "alias": "isUserMenu"; "required": false; }; "onlyCloseOnClickOutside": { "alias": "onlyCloseOnClickOutside"; "required": false; }; "hoverOutline": { "alias": "hoverOutline"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "type": { "alias": "type"; "required": false; }; "form": { "alias": "form"; "required": false; }; "label": { "alias": "label"; "required": false; }; "showArrowIcon": { "alias": "showArrowIcon"; "required": false; }; "disableTextShadow": { "alias": "disableTextShadow"; "required": false; }; "loading$": { "alias": "loading$"; "required": false; }; }, {}, never, ["*"], false, never>;
}

declare class IconBtnComponent extends BaseBtnLogic {
    hoverOutline: boolean;
    disabled: boolean;
    type: string;
    form: string;
    label: string;
    showArrowIcon: boolean;
    disableTextShadow: boolean;
    notificationCount: number;
    loading$: Observable<boolean>;
    illuminateIcon: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<IconBtnComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<IconBtnComponent, "lib-icon-btn", never, { "hoverOutline": { "alias": "hoverOutline"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "type": { "alias": "type"; "required": false; }; "form": { "alias": "form"; "required": false; }; "label": { "alias": "label"; "required": false; }; "showArrowIcon": { "alias": "showArrowIcon"; "required": false; }; "disableTextShadow": { "alias": "disableTextShadow"; "required": false; }; "notificationCount": { "alias": "notificationCount"; "required": false; }; "loading$": { "alias": "loading$"; "required": false; }; "illuminateIcon": { "alias": "illuminateIcon"; "required": false; }; }, {}, never, ["*"], false, never>;
}

declare class ListBtnComponent extends BaseBtnLogic {
    actionLabel: string;
    hideActionIcon: boolean;
    hoverOutline: boolean;
    disabled: boolean;
    type: string;
    form: string;
    showArrowIcon: boolean;
    label: string;
    loading$: Observable<boolean>;
    static ɵfac: i0.ɵɵFactoryDeclaration<ListBtnComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ListBtnComponent, "lib-list-btn", never, { "actionLabel": { "alias": "actionLabel"; "required": false; }; "hideActionIcon": { "alias": "hideActionIcon"; "required": false; }; "hoverOutline": { "alias": "hoverOutline"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "type": { "alias": "type"; "required": false; }; "form": { "alias": "form"; "required": false; }; "showArrowIcon": { "alias": "showArrowIcon"; "required": false; }; "label": { "alias": "label"; "required": false; }; "loading$": { "alias": "loading$"; "required": false; }; }, {}, never, ["*"], false, never>;
}

declare class HoverBtnComponent extends BaseBtnLogic {
    iconUrl: string;
    static ɵfac: i0.ɵɵFactoryDeclaration<HoverBtnComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<HoverBtnComponent, "lib-hover-btn", never, { "iconUrl": { "alias": "iconUrl"; "required": false; }; }, {}, never, ["*"], false, never>;
}

declare class MenuItemComponent {
    childMenu: MatMenu;
    menuDirection: 'ltr' | 'rtl';
    menuItems: ILibMenuItem[];
    disableTranslation: boolean;
    listItem: unknown;
    listItemIndex: number;
    selectable: boolean;
    /**
     * overlayClass for custom global style
     */
    overlayClass: string;
    onlyCloseOnClickOutside: boolean;
    /**
     * on click menu item emit an event to the host app and activated the clicked item
     * @param item
     * @param index
     */
    onMenuItemClick(item: ILibMenuItem, index: number): void;
    handleClick(event: Event, item: ILibMenuItem, index: number): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<MenuItemComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MenuItemComponent, "lib-menu-item", never, { "menuDirection": { "alias": "menuDirection"; "required": false; }; "menuItems": { "alias": "menuItems"; "required": false; }; "disableTranslation": { "alias": "disableTranslation"; "required": false; }; "listItem": { "alias": "listItem"; "required": false; }; "listItemIndex": { "alias": "listItemIndex"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; }; "overlayClass": { "alias": "overlayClass"; "required": false; }; "onlyCloseOnClickOutside": { "alias": "onlyCloseOnClickOutside"; "required": false; }; }, {}, never, never, false, never>;
}

declare class BubbleBtnComponent extends BaseBtnLogic {
    title: string;
    subTitle: string;
    hasIcon?: boolean;
    enableActiveStyle: boolean;
    get enableActiveStyleClass(): boolean;
    checked: boolean;
    disabled: boolean;
    loading$: Observable<boolean>;
    static ɵfac: i0.ɵɵFactoryDeclaration<BubbleBtnComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<BubbleBtnComponent, "lib-bubble-btn", never, { "title": { "alias": "title"; "required": false; }; "subTitle": { "alias": "subTitle"; "required": false; }; "hasIcon": { "alias": "hasIcon"; "required": false; }; "enableActiveStyle": { "alias": "enableActiveStyle"; "required": false; }; "checked": { "alias": "checked"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "loading$": { "alias": "loading$"; "required": false; }; }, {}, never, ["*"], false, never>;
}

declare class SectionSeparatorComponent {
    static ɵfac: i0.ɵɵFactoryDeclaration<SectionSeparatorComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SectionSeparatorComponent, "lib-section-separator", never, {}, {}, never, never, true, never>;
}

declare class ButtonsModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<ButtonsModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<ButtonsModule, [typeof BaseBtnComponent, typeof ChipBtnComponent, typeof PrimaryBtnComponent, typeof SecondaryBtnComponent, typeof MenuBtnComponent, typeof IconBtnComponent, typeof ListBtnComponent, typeof HoverBtnComponent, typeof MenuItemComponent, typeof BubbleBtnComponent], [typeof i2.CommonModule, typeof i3.IonicModule, typeof i13$1.MatRippleModule, typeof i14.MatMenuModule, typeof i4$1.TranslateModule, typeof i13.MatIconModule, typeof i17.MatTooltipModule, typeof SectionSeparatorComponent], [typeof BaseBtnComponent, typeof ChipBtnComponent, typeof PrimaryBtnComponent, typeof SecondaryBtnComponent, typeof MenuBtnComponent, typeof IconBtnComponent, typeof ListBtnComponent, typeof HoverBtnComponent, typeof MenuItemComponent, typeof BubbleBtnComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<ButtonsModule>;
}

declare class ImageBaseModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<ImageBaseModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<ImageBaseModule, [typeof ImageBaseComponent], [typeof i2.CommonModule], [typeof ImageBaseComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<ImageBaseModule>;
}

declare class ImageCardModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<ImageCardModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<ImageCardModule, [typeof ImageCardComponent], [typeof i2.CommonModule, typeof i3$1.DragDropModule, typeof i13$1.MatRippleModule, typeof i13.MatIconModule, typeof ButtonsModule, typeof i7$1.SkeletonModule, typeof ImageBaseModule], [typeof ImageCardComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<ImageCardModule>;
}

declare enum MapProvider {
    AWS = "aws",
    TRIPADVISOR = "tripadvisor",
    GOOGLE = "google"
}
interface ITripAdvisorSearchResult {
    data: ITripAdvisorPlace[];
}
interface ITripAdvisorPlace {
    location_id?: string | number;
    name: string;
    address_obj?: {
        address_string?: string;
    };
    latitude?: string | number;
    longitude?: string | number;
    web_url?: string;
    rating?: string | number;
    photo?: {
        images?: {
            thumbnail?: {
                url?: string;
            };
        };
    };
    category?: {
        key?: string;
    };
}
interface IMapLibConfig {
    provider: MapProvider;
    awsConfig?: {
        region: string;
        identityPoolId: string;
        placeIndexName: string;
        geocodingIndexName: string;
    };
    tripadvisorConfig?: {
        apiKey: string;
        apiUrl: string;
    };
    googleConfig?: {
        apiKey: string;
        apiUrl: string;
    };
}

interface ILibMapModuleConfig {
    googleMapsKey?: string;
    googleMapsURL?: string;
    googleMapsMapId?: string;
    mapLibConfig?: IMapLibConfig;
}

declare enum ToastrSeverity {
    SUCCESS = "success",
    WARNING = "warning",
    ERROR = "error",
    INFO = "info"
}

interface IMapsAlertModel {
    title: string;
    message: string;
    severity: ToastrSeverity;
}

declare enum MapActionTypes {
    MapLoaded = "map-loaded",
    MarkerClick = "marker-click",
    MarkerUpdated = "marker-updated",
    MapsAlertsEvent = "maps-alerts-event",
    UpdatedLocations = "updated-locations",
    SetMapsSearch = "set-maps-search",
    SetDeleteLocationIndex = "set-delete-location-index",
    SetEditLocationIndex = "set-edit-location-index",
    MapClick = "map-click",
    MapCenterChanged = "map-center-changed"
}

interface IMapActionEvent {
    type: MapActionTypes;
    mapLoaded?: boolean;
    markerClick?: IMapMarkerModel;
    markerUpdated?: IMapMarkerModel[];
    mapsAlertsEvent?: IMapsAlertModel;
    updatedLocations?: string[];
    setMapsSearch?: string;
    setDeleteLocationIndex?: number;
    setEditLocationIndex?: number;
    mapClick?: google.maps.MapMouseEvent;
    mapCenterChanged?: google.maps.LatLngLiteral;
}

declare class LibMapsComponent implements AfterViewInit, OnChanges, OnDestroy, OnInit {
    private mapService;
    private cdr;
    disableNotification: boolean;
    markers: IMapMarkerModel[];
    initialLocation: IPosition;
    /** Optional override from host apps (template uses `initialLocation` / `mapOptions` for the map widget). */
    center: google.maps.LatLngLiteral | google.maps.LatLng | undefined;
    options: google.maps.MapOptions | undefined;
    mapType: google.maps.MapTypeId | undefined;
    enableDrag: boolean;
    locations: string[];
    searchMapsString: string;
    mapOptions: google.maps.MapOptions;
    /** Google Cloud map style id; bound to `<google-map [mapId]>`. */
    mapId?: string;
    directions$: Observable<google.maps.DirectionsResult>;
    directionRenderOptions: google.maps.DirectionsRendererOptions;
    mapActionEvent: EventEmitter<IMapActionEvent>;
    markerOptions: google.maps.MarkerOptions;
    circleOptions: google.maps.CircleOptions;
    apiLoaded: boolean;
    editLocationIndex: number | null;
    deleteLocationIndex: number | null;
    locationTrack: IPosition;
    map: GoogleMap;
    zoom: number;
    editOptionClicked: boolean;
    private centerPosition;
    private validatedPosition;
    private mapCircleItem$;
    private componentDestroyed$;
    private centerChanged$;
    constructor(mapService: MapService, cdr: ChangeDetectorRef);
    ngOnInit(): void;
    onPlaceChange(place: google.maps.places.PlaceResult): void;
    ngAfterViewInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    /**
     * load & initialize the map
     *
     * @private
     */
    private loadMap;
    zoomChanged(maps: GoogleMap): void;
    checkLatPositionBoundary(latPosition: number): number;
    /**
     * configure the map
     *
     * @private
     */
    private initializeMapConfig;
    private handleGoogleMapsApiError;
    centerChanged(maps: GoogleMap): void;
    adjustLatitude(lat: number, constant: number, addLat?: boolean): number;
    radiusChanged(circle: MapCircle, index: number): void;
    markerDragEnd(index: number, $event: google.maps.MapMouseEvent): void;
    debounceCenterchanged(index: number, circle: MapCircle): void;
    markerDragEndCircle(index: number, circle: MapCircle): void;
    checkLocationNotExists(obj: google.maps.LatLngLiteral, ignoreIndex?: number): boolean;
    drop(event: CdkDragDrop<string[]>): void;
    resetEditMarker(): void;
    capturePositionChanges(position?: IPosition): void;
    navigateToItem(index: number): void;
    onMapClick(mapClick: google.maps.MapMouseEvent): void;
    onMarkerClick(markerClick: IMapMarkerModel): void;
    centerMap(position?: google.maps.LatLngLiteral): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<LibMapsComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<LibMapsComponent, "lib-map", never, { "disableNotification": { "alias": "disableNotification"; "required": false; }; "markers": { "alias": "markers"; "required": false; }; "initialLocation": { "alias": "initialLocation"; "required": false; }; "center": { "alias": "center"; "required": false; }; "options": { "alias": "options"; "required": false; }; "mapType": { "alias": "mapType"; "required": false; }; "enableDrag": { "alias": "enableDrag"; "required": false; }; "locations": { "alias": "locations"; "required": false; }; "searchMapsString": { "alias": "searchMapsString"; "required": false; }; "mapOptions": { "alias": "mapOptions"; "required": false; }; "mapId": { "alias": "mapId"; "required": false; }; "directions$": { "alias": "directions$"; "required": false; }; "directionRenderOptions": { "alias": "directionRenderOptions"; "required": false; }; "zoom": { "alias": "zoom"; "required": false; }; }, { "mapActionEvent": "mapActionEvent"; }, never, never, false, never>;
}

declare class LibMapModule {
    static forRoot(config: ILibMapModuleConfig): ModuleWithProviders<LibMapModule>;
    static ɵfac: i0.ɵɵFactoryDeclaration<LibMapModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<LibMapModule, [typeof LibMapsComponent], [typeof i2.CommonModule, typeof i3$2.GoogleMapsModule, typeof i3$2.MapAdvancedMarker, typeof i4$1.TranslateModule, typeof i3$1.DragDropModule], [typeof LibMapsComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<LibMapModule>;
}

declare class InputFieldModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<InputFieldModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<InputFieldModule, [typeof InputFieldComponent], [typeof i2.CommonModule, typeof i4.ReactiveFormsModule, typeof i3$2.GoogleMapsModule, typeof i5.NgxMaskDirective, typeof i5.NgxMaskPipe, typeof ImageCardModule, typeof LibMapModule], [typeof InputFieldComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<InputFieldModule>;
}

declare class FocusInvalidInputDirective {
    private el;
    constructor(el: ElementRef);
    onFormSubmit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<FocusInvalidInputDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<FocusInvalidInputDirective, "[libFocusInvalidInput]", never, {}, {}, never, never, false, never>;
}

declare class InvalidInputDirective implements OnInit, OnDestroy {
    private _fg;
    private _el;
    private render;
    appInvalidInput: string;
    private control;
    private destroy$;
    constructor(_fg: ControlContainer, _el: ElementRef, render: Renderer2);
    get form(): any;
    private onFocus;
    private onBlur;
    ngOnInit(): void;
    ngOnDestroy(): void;
    private setInvalidClass;
    static ɵfac: i0.ɵɵFactoryDeclaration<InvalidInputDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<InvalidInputDirective, "[libInvalidInput]", never, { "appInvalidInput": { "alias": "appInvalidInput"; "required": false; }; }, {}, never, never, false, never>;
}

declare class FormValidatorModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<FormValidatorModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<FormValidatorModule, [typeof FocusInvalidInputDirective, typeof InvalidInputDirective], [typeof i2.CommonModule, typeof i4.FormsModule, typeof i4$1.TranslateModule], [typeof FocusInvalidInputDirective, typeof InvalidInputDirective]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<FormValidatorModule>;
}

declare class DashedCheckboxComponent implements ControlValueAccessor {
    input: ElementRef;
    checked: boolean;
    disabled: boolean;
    toggle: EventEmitter<boolean>;
    private onChange;
    private onTouched;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState(isDisabled: boolean): void;
    writeValue(value: boolean): void;
    onCheckToggled(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DashedCheckboxComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DashedCheckboxComponent, "lib-dashed-checkbox", never, { "checked": { "alias": "checked"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "toggle": "toggle"; }, never, never, false, never>;
}

declare class DashedCheckboxModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<DashedCheckboxModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<DashedCheckboxModule, [typeof DashedCheckboxComponent], [typeof i2.CommonModule], [typeof DashedCheckboxComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<DashedCheckboxModule>;
}

declare enum CountryISO {
    Afghanistan = "af",
    Albania = "al",
    Algeria = "dz",
    AmericanSamoa = "as",
    Andorra = "ad",
    Angola = "ao",
    Anguilla = "ai",
    AntiguaAndBarbuda = "ag",
    Argentina = "ar",
    Armenia = "am",
    Aruba = "aw",
    Australia = "au",
    Austria = "at",
    Azerbaijan = "az",
    Bahamas = "bs",
    Bahrain = "bh",
    Bangladesh = "bd",
    Barbados = "bb",
    Belarus = "by",
    Belgium = "be",
    Belize = "bz",
    Benin = "bj",
    Bermuda = "bm",
    Bhutan = "bt",
    Bolivia = "bo",
    BosniaAndHerzegovina = "ba",
    Botswana = "bw",
    Brazil = "br",
    BritishIndianOceanTerritory = "io",
    BritishVirginIslands = "vg",
    Brunei = "bn",
    Bulgaria = "bg",
    BurkinaFaso = "bf",
    Burundi = "bi",
    Cambodia = "kh",
    Cameroon = "cm",
    Canada = "ca",
    CapeVerde = "cv",
    CaribbeanNetherlands = "bq",
    CaymanIslands = "ky",
    CentralAfricanRepublic = "cf",
    Chad = "td",
    Chile = "cl",
    China = "cn",
    ChristmasIsland = "cx",
    Cocos = "cc",
    Colombia = "co",
    Comoros = "km",
    CongoDRCJamhuriYaKidemokrasiaYaKongo = "cd",
    CongoRepublicCongoBrazzaville = "cg",
    CookIslands = "ck",
    CostaRica = "cr",
    CôteDIvoire = "ci",
    Croatia = "hr",
    Cuba = "cu",
    Curaçao = "cw",
    Cyprus = "cy",
    CzechRepublic = "cz",
    Denmark = "dk",
    Djibouti = "dj",
    Dominica = "dm",
    DominicanRepublic = "do",
    Ecuador = "ec",
    Egypt = "eg",
    ElSalvador = "sv",
    EquatorialGuinea = "gq",
    Eritrea = "er",
    Estonia = "ee",
    Ethiopia = "et",
    FalklandIslands = "fk",
    FaroeIslands = "fo",
    Fiji = "fj",
    Finland = "fi",
    France = "fr",
    FrenchGuiana = "gf",
    FrenchPolynesia = "pf",
    Gabon = "ga",
    Gambia = "gm",
    Georgia = "ge",
    Germany = "de",
    Ghana = "gh",
    Gibraltar = "gi",
    Greece = "gr",
    Greenland = "gl",
    Grenada = "gd",
    Guadeloupe = "gp",
    Guam = "gu",
    Guatemala = "gt",
    Guernsey = "gg",
    Guinea = "gn",
    GuineaBissau = "gw",
    Guyana = "gy",
    Haiti = "ht",
    Honduras = "hn",
    HongKong = "hk",
    Hungary = "hu",
    Iceland = "is",
    India = "in",
    Indonesia = "id",
    Iran = "ir",
    Iraq = "iq",
    Ireland = "ie",
    IsleOfMan = "im",
    Israel = "il",
    Italy = "it",
    Jamaica = "jm",
    Japan = "jp",
    Jersey = "je",
    Jordan = "jo",
    Kazakhstan = "kz",
    Kenya = "ke",
    Kiribati = "ki",
    Kosovo = "xk",
    Kuwait = "kw",
    Kyrgyzstan = "kg",
    Laos = "la",
    Latvia = "lv",
    Lebanon = "lb",
    Lesotho = "ls",
    Liberia = "lr",
    Libya = "ly",
    Liechtenstein = "li",
    Lithuania = "lt",
    Luxembourg = "lu",
    Macau = "mo",
    Macedonia = "mk",
    Madagascar = "mg",
    Malawi = "mw",
    Malaysia = "my",
    Maldives = "mv",
    Mali = "ml",
    Malta = "mt",
    MarshallIslands = "mh",
    Martinique = "mq",
    Mauritania = "mr",
    Mauritius = "mu",
    Mayotte = "yt",
    Mexico = "mx",
    Micronesia = "fm",
    Moldova = "md",
    Monaco = "mc",
    Mongolia = "mn",
    Montenegro = "me",
    Montserrat = "ms",
    Morocco = "ma",
    Mozambique = "mz",
    Myanmar = "mm",
    Namibia = "na",
    Nauru = "nr",
    Nepal = "np",
    Netherlands = "nl",
    NewCaledonia = "nc",
    NewZealand = "nz",
    Nicaragua = "ni",
    Niger = "ne",
    Nigeria = "ng",
    Niue = "nu",
    NorfolkIsland = "nf",
    NorthKorea = "kp",
    NorthernMarianaIslands = "mp",
    Norway = "no",
    Oman = "om",
    Pakistan = "pk",
    Palau = "pw",
    Palestine = "ps",
    Panama = "pa",
    PapuaNewGuinea = "pg",
    Paraguay = "py",
    Peru = "pe",
    Philippines = "ph",
    Poland = "pl",
    Portugal = "pt",
    PuertoRico = "pr",
    Qatar = "qa",
    Réunion = "re",
    Romania = "ro",
    Russia = "ru",
    Rwanda = "rw",
    SaintBarthélemy = "bl",
    SaintHelena = "sh",
    SaintKittsAndNevis = "kn",
    SaintLucia = "lc",
    SaintMartin = "mf",
    SaintPierreAndMiquelon = "pm",
    SaintVincentAndTheGrenadines = "vc",
    Samoa = "ws",
    SanMarino = "sm",
    SãoToméAndPríncipe = "st",
    SaudiArabia = "sa",
    Senegal = "sn",
    Serbia = "rs",
    Seychelles = "sc",
    SierraLeone = "sl",
    Singapore = "sg",
    SintMaarten = "sx",
    Slovakia = "sk",
    Slovenia = "si",
    SolomonIslands = "sb",
    Somalia = "so",
    SouthAfrica = "za",
    SouthKorea = "kr",
    SouthSudan = "ss",
    Spain = "es",
    SriLanka = "lk",
    Sudan = "sd",
    Suriname = "sr",
    SvalbardAndJanMayen = "sj",
    Swaziland = "sz",
    Sweden = "se",
    Switzerland = "ch",
    Syria = "sy",
    Taiwan = "tw",
    Tajikistan = "tj",
    Tanzania = "tz",
    Thailand = "th",
    TimorLeste = "tl",
    Togo = "tg",
    Tokelau = "tk",
    Tonga = "to",
    TrinidadAndTobago = "tt",
    Tunisia = "tn",
    Turkey = "tr",
    Turkmenistan = "tm",
    TurksAndCaicosIslands = "tc",
    Tuvalu = "tv",
    USVirginIslands = "vi",
    Uganda = "ug",
    Ukraine = "ua",
    UnitedArabEmirates = "ae",
    UnitedKingdom = "gb",
    UnitedStates = "us",
    Uruguay = "uy",
    Uzbekistan = "uz",
    Vanuatu = "vu",
    VaticanCity = "va",
    Venezuela = "ve",
    Vietnam = "vn",
    WallisAndFutuna = "wf",
    WesternSahara = "eh",
    Yemen = "ye",
    Zambia = "zm",
    Zimbabwe = "zw",
    ÅlandIslands = "ax"
}

declare enum PhoneNumberFormat {
    International = "INTERNATIONAL",
    National = "NATIONAL"
}

declare enum SearchCountryField {
    DialCode = "dialCode",
    Iso2 = "iso2",
    Name = "name",
    All = "all"
}

interface IChangeData {
    number?: string;
    internationalNumber?: string;
    nationalNumber?: string;
    e164Number?: string;
    countryCode?: string;
    dialCode?: string;
}

interface ICountry {
    name: string;
    iso2: string;
    dialCode: string;
    priority: number;
    areaCodes?: string[];
    htmlId: string;
    flagClass: string;
    placeHolder: string;
}

declare class CountryCode {
    allCountries: ((string | number | string[])[] | (string | number | number[])[])[];
    phoneMasks: ({
        code: string;
        iso: string;
        mask: string;
    } | {
        code: string;
        iso: string;
        mask: string[];
    })[];
    getPhoneMask(iso: string): string | string[];
    getCountryCode(iso: string): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<CountryCode, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<CountryCode>;
}

declare class TelInputComponent implements OnInit, OnChanges, OnDestroy, ControlValueAccessor {
    private countryCodeData;
    private cdr;
    ngControl: NgControl;
    inputElement: ElementRef<HTMLInputElement>;
    dropDownElementRef: ElementRef<HTMLDivElement>;
    countryList: ElementRef<HTMLUListElement>;
    focusableElRef: InputFieldComponent;
    listbox: AppListbox<ICountry>;
    optionsList: QueryList<AppOption<ICountry>>;
    value: string | undefined;
    enablePlaceholder: boolean;
    maskPhoneNumber: boolean;
    eagerMask: boolean;
    customPlaceholder: string;
    numberFormat: PhoneNumberFormat;
    cssClass: string;
    onlyCountries: Array<string>;
    searchCountryFlag: boolean;
    searchCountryField: SearchCountryField[];
    searchCountryPlaceholder: string;
    maxLength: number;
    selectFirstCountry: boolean;
    selectedCountryISO: CountryISO;
    phoneValidation: boolean;
    inputId: string;
    separateDialCode: boolean;
    showDropDownArrow: boolean;
    icons: AuthIcons | null;
    autocomplete: string;
    readonly countryChange: EventEmitter<ICountry>;
    /** Emits when the raw digit count reaches the minimum for the selected country — use to force immediate async validation. */
    readonly phoneComplete: EventEmitter<void>;
    selectedCountry: ICountry;
    customPatterns: {
        A: {
            pattern: RegExp;
        };
    };
    phoneNumber: IChangeData | string | undefined;
    enableAutoCountrySelect: boolean;
    phoneMask: string;
    countryCode: string;
    allCountries: Array<ICountry>;
    filteredCountries: Array<ICountry>;
    disabled: boolean;
    readonly countrySearchControl: FormControl<string>;
    readonly phoneNumberControl: FormControl<string | IChangeData | null | undefined>;
    separateDialCodeClass: string;
    autoClose: boolean;
    clearTextOnSelect: boolean;
    freeInputMode: boolean;
    private destroyRef$;
    onTouched: () => void;
    onChange: (_: IChangeData | null) => void;
    constructor(countryCodeData: CountryCode, cdr: ChangeDetectorRef, ngControl: NgControl);
    get isValidNumber(): boolean;
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    init(): void;
    onDropDownShow(): void;
    toggleFreeInputMode(): void;
    private createPhoneMask;
    onListFocus(): void;
    setSelectedCountry(country: ICountry): void;
    searchCountry(): void;
    private setActiveSelectedCountry;
    onPhoneNumberChange(changeFromModel?: boolean): void;
    private extractPhoneValue;
    onCountrySelect(country: ICountry, el: HTMLInputElement | null, changeFromModel?: boolean, isClickUserGenerated?: boolean): void;
    onInputKeyPress(event: KeyboardEvent): void;
    private isValidInput;
    identify(index: number, item: ICountry): string;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState(isDisabled: boolean): void;
    isString(val: IChangeData | string | undefined): val is string;
    isChangeDataObj(val: IChangeData | string | undefined): val is IChangeData;
    writeValue(obj: string | IChangeData | null): void;
    private convertStringToPhoneNumber;
    isValidFreeInput(inp: string): boolean;
    resolvePlaceholder(): string;
    focusInputElement(): void;
    focusPhoneField(): void;
    onResize(event: number): void;
    focusSelectedCountry(): void;
    private generalizeRestrictedMask;
    private extractMaskInitialValues;
    private checkSeparateDialCodeStyle;
    private removeDialCode;
    private getCountryIsoCode;
    protected getPhoneNumberPlaceHolder(countryCode: string): string;
    protected fetchCountryData(): void;
    private updateSelectedCountry;
    private isArray;
    /**
     * Returns the minimum raw digit count needed for a potentially valid number in the
     * given country. Derived from the country's phone mask — the count of digit
     * placeholders (0s) represents how many digits the user must type before the
     * number is complete enough to validate. E.g. US mask "(999) 999-9999" → 10 digits.
     */
    private getMinDigitsForCountry;
    static ɵfac: i0.ɵɵFactoryDeclaration<TelInputComponent, [null, null, { self: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TelInputComponent, "lib-tel-input", never, { "value": { "alias": "value"; "required": false; }; "enablePlaceholder": { "alias": "enablePlaceholder"; "required": false; }; "maskPhoneNumber": { "alias": "maskPhoneNumber"; "required": false; }; "eagerMask": { "alias": "eagerMask"; "required": false; }; "customPlaceholder": { "alias": "customPlaceholder"; "required": false; }; "numberFormat": { "alias": "numberFormat"; "required": false; }; "cssClass": { "alias": "cssClass"; "required": false; }; "onlyCountries": { "alias": "onlyCountries"; "required": false; }; "searchCountryFlag": { "alias": "searchCountryFlag"; "required": false; }; "searchCountryField": { "alias": "searchCountryField"; "required": false; }; "searchCountryPlaceholder": { "alias": "searchCountryPlaceholder"; "required": false; }; "maxLength": { "alias": "maxLength"; "required": false; }; "selectFirstCountry": { "alias": "selectFirstCountry"; "required": false; }; "selectedCountryISO": { "alias": "selectedCountryISO"; "required": false; }; "phoneValidation": { "alias": "phoneValidation"; "required": false; }; "inputId": { "alias": "inputId"; "required": false; }; "separateDialCode": { "alias": "separateDialCode"; "required": false; }; "showDropDownArrow": { "alias": "showDropDownArrow"; "required": false; }; "icons": { "alias": "icons"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; }, { "countryChange": "countryChange"; "phoneComplete": "phoneComplete"; }, never, never, false, never>;
}

declare class NativeElementInjectorDirective implements OnInit {
    private controlDir;
    private host;
    constructor(controlDir: NgControl, host: ElementRef<HTMLFormElement>);
    ngOnInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NativeElementInjectorDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NativeElementInjectorDirective, "[ngModel], [formControl], [formControlName]", never, {}, {}, never, never, false, never>;
}

declare class TelErrorsComponent {
    phoneNumberComponent: TelInputComponent;
    static ɵfac: i0.ɵɵFactoryDeclaration<TelErrorsComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TelErrorsComponent, "lib-tel-errors", never, { "phoneNumberComponent": { "alias": "phoneNumberComponent"; "required": false; }; }, {}, never, never, false, never>;
}

declare enum ToggleStatuses {
    Initial = "initial",
    MovedRight = "right",
    MovedLeft = "left"
}

declare enum ToggleVariants {
    /**
     * Basic Variant:
     * - This is the default toggle variant.
     * - In this variant, the toggle operates as a simple switch without any additional graphics or labels.
     * - No images or text will be displayed on the toggle when using this variant.
     * - The toggle will purely indicate its state (on/off) visually, typically by changing its background color or position.
     */
    Basic = "basic",
    /**
     * Image Variant:
     * - In this variant, the toggle button can display images on either side to represent its state.
     * - The `enable` and `disable` keys in the `IToggleGraphics` interface will define the images that are shown.
     *
     * - When the toggle is in the "off" state:
     *   - The image specified in the `enable` key will be shown on the left side of the toggle.
     *   - The image specified in the `disable` key will be shown on the right side of the toggle.
     *
     * - When the toggle is in the "on" state:
     *   - The image specified in the `disable` key will be shown on the left side of the toggle.
     *   - The image specified in the `enable` key will be shown on the right side of the toggle.
     *
     * - This variant is useful when you want to visually represent the toggle's state with icons or other graphics.
     */
    Image = "image",
    /**
     * Text Variant:
     * - In this variant, the toggle button can display text labels on either side to represent its state.
     * - The `enable` and `disable` keys in the `IToggleGraphics` interface will define the text that is shown.
     *
     * - When the toggle is in the "off" state:
     *   - The text specified in the `enable` key will be shown on the left side of the toggle.
     *   - The text specified in the `disable` key will be shown on the right side of the toggle.
     *
     * - When the toggle is in the "on" state:
     *   - The text specified in the `disable` key will be shown on the left side of the toggle.
     *   - The text specified in the `enable` key will be shown on the right side of the toggle.
     *
     * - This variant is ideal when you want to provide users with clear, descriptive labels indicating the toggle's current state.
     */
    Text = "text",
    MultipleImages = "multipleImages"
}

interface IToggleCircleMask {
    /**
     * Primary Mask:
     * - This string represents a unique identifier for the primary mask used in the toggle's SVG element.
     * - The `url(#id-here)` syntax in SVG only accepts an `id`, not a class, which is why a unique identifier is necessary.
     * - The primary mask is applied to the toggle's graphics when it is in the "on" state.
     * - It defines the area within the SVG where the "active" or "enabled" graphics (such as images or text) are shown.
     * - The unique `id` ensures that this mask is distinct from other toggles on the same page, preventing any interference or overlap.
     *
     * Example Usage:
     * - When the toggle is "on," the elements associated with this mask will be displayed on the appropriate side of the toggle.
     */
    primary: string;
    /**
     * Secondary Mask:
     * - This string represents a unique identifier for the secondary mask used in the toggle's SVG element.
     * - The `url(#id-here)` syntax in SVG only accepts an `id`, not a class, necessitating a unique identifier for each mask.
     * - The secondary mask is applied to the toggle's graphics when it is in the "off" state.
     * - It defines the area within the SVG where the "inactive" or "disabled" graphics (such as images or text) are shown.
     * - The unique `id` ensures that this mask is distinct from other toggles on the same page, avoiding any conflicts or misrendering.
     *
     * Example Usage:
     * - When the toggle is "off," the elements associated with this mask will be displayed on the appropriate side of the toggle.
     */
    secondary: string;
}

interface IToggleGraphics {
    /**
     * The `enable` key holds the value that will be displayed when the toggle is in the "on" state.
     * - For the 'image' variant: This should be the URL of the image that will appear on the active side of the toggle.
     * - For the 'text' variant: This should be the label or text that will appear when the toggle is active.
     * - When the toggle is in the "on" state:
     *   - If `enable` is defined, the image (or text) will be displayed on the right side of the toggle.
     *   - If the `variant` is 'text', this text will be visible on the right side.
     */
    enable?: string;
    /**
     * The `disable` key holds the value that will be displayed when the toggle is in the "off" state.
     * - For the 'image' variant: This should be the URL of the image that will appear on the inactive side of the toggle.
     * - For the 'text' variant: This should be the label or text that will appear when the toggle is inactive.
     * - When the toggle is in the "off" state:
     *   - If `disable` is defined, the image (or text) will be displayed on the right side of the toggle.
     *   - If the `variant` is 'text', this text will be visible on the left side.
     */
    disable?: string;
}

/**
 * OBSERVATION: toggleMultipleOptions() used to silently ignore clicks on the
 * already-selected option (line: `if (index === this.optionId) return`). This
 * meant consumers could never detect a "re-click" to implement deselection or
 * disengage behaviors. Added `toggleReselect` @Output that fires when the user
 * clicks the currently active option, enabling parent components to implement
 * toggle-off / disengage without needing dblclick or touchend hacks.
 */

declare class ToggleComponent implements OnInit, OnDestroy, ControlValueAccessor {
    private cdr;
    disabled: boolean;
    set toggleState(value: boolean | number);
    variant: ToggleVariants;
    left: IToggleGraphics | null;
    right: IToggleGraphics | null;
    thumbImg: string;
    toggleStateChange: EventEmitter<boolean | number>;
    toggleReselect: EventEmitter<number>;
    TOGGLE_VARIANT: typeof ToggleVariants;
    TOGGLE_STATUS: typeof ToggleStatuses;
    circleMask: IToggleCircleMask | null;
    currentToggleStatus: ToggleStatuses;
    _toggleState: boolean | number;
    private onChange;
    private onTouched;
    multipleOptions: IToggleGraphics[];
    protected optionId: number;
    protected previousOptionId: number;
    private readonly multiOptionAnimationDurationMs;
    private multiOptionAnimationTimeout;
    private multiOptionAnimationFrame;
    ngOnInit(): void;
    ngOnDestroy(): void;
    writeValue(value: boolean | number): void;
    registerOnChange(fn: (value: boolean | number) => void): void;
    registerOnTouched(fn: () => void): void;
    setDisabledState(isDisabled: boolean): void;
    toggleButtonClick(): void;
    /**
     * Toggles to the specified option index in multiple options mode.
     * @param index - The index of the option to toggle to
     */
    toggleMultipleOptions(index: number): void;
    /**
     * Sets the position of the toggle knob based on the provided value.
     *
     * @param {boolean} value - The new state of the toggle. `true` represents the "on" state, and `false` represents the "off" state.
     *
     * @remarks
     * If the toggle is in its initial state (`ToggleStatuses.Initial`) and the provided value
     * is `false` (i.e., "off"), the method prevents the toggle knob from unnecessarily animating
     * from right to left, maintaining its initial position to avoid unexpected visual behavior.
     */
    private setToggleKnobPosition;
    private updateCurrentToggleStatus;
    private clearMultiOptionAnimationHandlers;
    static ɵfac: i0.ɵɵFactoryDeclaration<ToggleComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ToggleComponent, "lib-toggle", never, { "disabled": { "alias": "disabled"; "required": false; }; "toggleState": { "alias": "toggleState"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "left": { "alias": "left"; "required": false; }; "right": { "alias": "right"; "required": false; }; "thumbImg": { "alias": "thumbImg"; "required": false; }; "multipleOptions": { "alias": "multipleOptions"; "required": false; }; }, { "toggleStateChange": "toggleStateChange"; "toggleReselect": "toggleReselect"; }, never, never, false, never>;
}

declare class ToggleModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<ToggleModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<ToggleModule, [typeof ToggleComponent], [typeof i2.CommonModule, typeof i4.FormsModule, typeof i4$1.TranslateModule], [typeof ToggleComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<ToggleModule>;
}

declare class TelInputModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<TelInputModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<TelInputModule, [typeof TelInputComponent, typeof NativeElementInjectorDirective, typeof TelErrorsComponent], [typeof i4$2.CdkListboxModule, typeof i2.CommonModule, typeof i4.FormsModule, typeof i4.ReactiveFormsModule, typeof i7$2.BsDropdownModule, typeof InputFieldModule, typeof i13$1.MatRippleModule, typeof DirectiveModule, typeof i5.NgxMaskDirective, typeof i5.NgxMaskPipe, typeof i4$1.TranslateModule, typeof ToggleModule, typeof i14$1.TextFieldModule], [typeof TelInputComponent, typeof NativeElementInjectorDirective, typeof TelErrorsComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<TelInputModule>;
}

declare class LoginInputComponent implements OnDestroy, OnInit, AfterViewInit, ControlValueAccessor {
    private autofillMonitor;
    usernameLabel: string;
    phoneNumberPlaceHolder: string;
    icons: AuthIcons;
    loginFormTypeChange: EventEmitter<LoginFormType>;
    LoginFormType: typeof LoginFormType;
    selectedLoginFormMode: LoginFormType;
    isFormValid: Record<LoginFormType, boolean>;
    firstChange: boolean;
    TOGGLE_VARIANTS: typeof ToggleVariants;
    hasToggled: boolean;
    phoneControl: FormControl<IPhoneDetails>;
    emailControl: FormControl<string>;
    private onChange;
    private onTouched;
    private destroy$;
    private loginInputFieldComponent;
    private loginInputFieldRef;
    private didBrowserAutofillEmail;
    constructor(autofillMonitor: AutofillMonitor);
    ngOnInit(): void;
    buildForm(): void;
    emitAutofillEmailValue(): void;
    ngAfterViewInit(): void;
    onFieldClick(): void;
    toggleInput(): void;
    writeValue(value: string | IPhoneDetails): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState?(isDisabled: boolean): void;
    ngOnDestroy(): void;
    checkFormValidation(): void;
    private setEmailFormType;
    private setPhoneFormType;
    static ɵfac: i0.ɵɵFactoryDeclaration<LoginInputComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<LoginInputComponent, "lib-login-input", never, { "usernameLabel": { "alias": "usernameLabel"; "required": false; }; "phoneNumberPlaceHolder": { "alias": "phoneNumberPlaceHolder"; "required": false; }; "icons": { "alias": "icons"; "required": false; }; }, { "loginFormTypeChange": "loginFormTypeChange"; }, never, never, false, never>;
}

interface IErrorMessageConfig {
    control: FormControl;
    min: number;
    max: number;
    minLength: number;
    maxLength: number;
    customErrorMessage: string;
    requiredErrorMessage: string;
    freeContent: boolean;
    centered: boolean;
    hideLogin: boolean;
}

declare class LibErrorMessageComponent {
    private navController;
    customerErrorTmpl: TemplateRef<unknown>;
    config: Partial<IErrorMessageConfig>;
    constructor(navController: NavController);
    navigate(url: string, queryParams?: {}): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<LibErrorMessageComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<LibErrorMessageComponent, "lib-error-message", never, { "config": { "alias": "config"; "required": false; }; }, {}, ["customerErrorTmpl"], never, true, never>;
}

declare class LoginInputModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<LoginInputModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<LoginInputModule, [typeof LoginInputComponent], [typeof i2.CommonModule, typeof TelInputModule, typeof ToggleModule, typeof InputFieldModule, typeof i4.ReactiveFormsModule, typeof FormValidatorModule, typeof LibErrorMessageComponent], [typeof LoginInputComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<LoginInputModule>;
}

declare class PasswordValidatorDirective implements Validator {
    passwordErrorMsg: string;
    private passwordRegex;
    /**
     * validate function
     *
     * @param control
     */
    validate(control: FormControl): ValidationErrors | null;
    /**
     * build the error msg
     *
     * @private
     */
    private message;
    static ɵfac: i0.ɵɵFactoryDeclaration<PasswordValidatorDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<PasswordValidatorDirective, "[libPasswordValidator]", never, { "passwordErrorMsg": { "alias": "passwordErrorMsg"; "required": false; }; }, {}, never, never, false, never>;
}

declare class ConfirmPasswordValidatorDirective implements Validator {
    appConfirmPasswordValidator: string;
    /**
     * validate function
     *
     * @param control
     */
    validate(control: FormControl): ValidationErrors | null;
    static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmPasswordValidatorDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<ConfirmPasswordValidatorDirective, "[libConfirmPasswordValidator]", never, { "appConfirmPasswordValidator": { "alias": "libConfirmPasswordValidator"; "required": false; }; }, {}, never, never, false, never>;
}

declare class CustomPasswordValidatorDirective implements Validator {
    private translateService;
    constructor(translateService: TranslateService);
    /**
     * validate function
     *
     * @param control
     */
    validate(control: FormControl): ValidationErrors | null;
    static patternValidator(regex: RegExp, error: ValidationErrors): ValidatorFn;
    static ɵfac: i0.ɵɵFactoryDeclaration<CustomPasswordValidatorDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<CustomPasswordValidatorDirective, "[formControlName][customPasswordValidator],[ngModel][customPasswordValidator],[formControl][customPasswordValidator]", never, {}, {}, never, never, false, never>;
}

declare class PasswordValidatorModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<PasswordValidatorModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<PasswordValidatorModule, [typeof PasswordValidatorDirective, typeof ConfirmPasswordValidatorDirective, typeof CustomPasswordValidatorDirective], [typeof i2.CommonModule], [typeof PasswordValidatorDirective, typeof ConfirmPasswordValidatorDirective, typeof CustomPasswordValidatorDirective]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<PasswordValidatorModule>;
}

declare class SharedVerificationComponent implements OnInit, OnDestroy {
    private cdr;
    hideVerificationTitle: boolean;
    hideEdit: boolean;
    confirmBtnTitle: string;
    sourceOfCode: string;
    otpInput: string;
    loading$: Observable<boolean>;
    secondsLeft$: Observable<number>;
    customClass: string;
    noOfBox: number;
    showConfirmBtn: boolean;
    otpCode: FormControl<string | null>;
    dataSubmit: EventEmitter<string>;
    resend: EventEmitter<boolean>;
    edit: EventEmitter<boolean>;
    otpInputComponent: OtpInputComponent;
    secondsLeft: number;
    downloadTimer: number | null;
    componentDestroyed$: Subject<void>;
    constructor(cdr: ChangeDetectorRef);
    ngOnInit(): void;
    ngOnDestroy(): void;
    /**
     * Resend button click event
     */
    onResend(): void;
    /**
     * On confirm verification code
     */
    confirm(): void;
    onEdit(): void;
    /**
     * Start counting resend timer
     */
    private startCount;
    static ɵfac: i0.ɵɵFactoryDeclaration<SharedVerificationComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SharedVerificationComponent, "lib-verification", never, { "hideVerificationTitle": { "alias": "hideVerificationTitle"; "required": false; }; "hideEdit": { "alias": "hideEdit"; "required": false; }; "confirmBtnTitle": { "alias": "confirmBtnTitle"; "required": false; }; "sourceOfCode": { "alias": "sourceOfCode"; "required": false; }; "otpInput": { "alias": "otpInput"; "required": false; }; "loading$": { "alias": "loading$"; "required": false; }; "secondsLeft$": { "alias": "secondsLeft$"; "required": false; }; "customClass": { "alias": "customClass"; "required": false; }; "noOfBox": { "alias": "noOfBox"; "required": false; }; "showConfirmBtn": { "alias": "showConfirmBtn"; "required": false; }; "otpCode": { "alias": "otpCode"; "required": false; }; }, { "dataSubmit": "dataSubmit"; "resend": "resend"; "edit": "edit"; }, never, never, false, never>;
}

declare class SharedVerificationCodeModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<SharedVerificationCodeModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<SharedVerificationCodeModule, [typeof SharedVerificationComponent], [typeof i2.CommonModule, typeof i3.IonicModule, typeof OtpInputModule, typeof i4.ReactiveFormsModule, typeof i4$1.TranslateModule, typeof ButtonsModule], [typeof SharedVerificationComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<SharedVerificationCodeModule>;
}

declare class AuthenticationModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<AuthenticationModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<AuthenticationModule, [typeof LoginScreenComponent, typeof AuthSocialComponent, typeof ForgotPasswordScreenComponent, typeof ResetPasswordScreenComponent, typeof VerificationCodeScreenComponent, typeof AuthHeaderComponent], [typeof i2.CommonModule, typeof i8.HttpClientModule, typeof DirectiveModule, typeof i4.FormsModule, typeof i4.ReactiveFormsModule, typeof i3.IonicModule, typeof i7.MatButtonModule, typeof i13.MatIconModule, typeof i14.MatMenuModule, typeof OtpInputModule, typeof InputFieldModule, typeof FormValidatorModule, typeof i4$1.TranslateModule, typeof ButtonsModule, typeof DashedCheckboxModule, typeof TelInputModule, typeof LoginInputModule, typeof PasswordValidatorModule, typeof SharedVerificationCodeModule, typeof LibErrorMessageComponent], [typeof LoginScreenComponent, typeof AuthSocialComponent, typeof ForgotPasswordScreenComponent, typeof ResetPasswordScreenComponent, typeof VerificationCodeScreenComponent, typeof AuthHeaderComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<AuthenticationModule>;
}

declare class BaseCardComponent {
    static ɵfac: i0.ɵɵFactoryDeclaration<BaseCardComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<BaseCardComponent, "lib-base-card", never, {}, {}, never, ["*"], false, never>;
}

declare class BaseCardModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<BaseCardModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<BaseCardModule, [typeof BaseCardComponent], [typeof i2.CommonModule], [typeof BaseCardComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<BaseCardModule>;
}

declare class BaseComponent implements OnDestroy {
    loading$: Observable<boolean>;
    protected componentDestroyed$: Subject<void>;
    protected viewWillLeave$: Subject<void>;
    ngOnDestroy(): void;
    viewWillLeave(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<BaseComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<BaseComponent, "ng-component", never, { "loading$": { "alias": "loading$"; "required": false; }; }, {}, never, never, true, never>;
}

/**
 * Reusable skeleton card matching the ad-element pattern.
 * Use for itinerary, insights, and comment cards during loading.
 */
declare class CardSkeletonComponent {
    count: number;
    get skeletonCount(): number[];
    static ɵfac: i0.ɵɵFactoryDeclaration<CardSkeletonComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<CardSkeletonComponent, "lib-card-skeleton", never, { "count": { "alias": "count"; "required": false; }; }, {}, never, never, false, never>;
}

declare class CardSkeletonModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<CardSkeletonModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<CardSkeletonModule, [typeof CardSkeletonComponent], [typeof i2.CommonModule, typeof i7$1.SkeletonModule, typeof BaseCardModule], [typeof CardSkeletonComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<CardSkeletonModule>;
}

declare enum TooltipDirectionPreference {
    Top = 0,
    Bottom = 1,
    Left = 2,
    Right = 3
}

type GridControlType = 'Date' | 'MultiSelect' | 'Number' | 'Percent' | 'SingleSelect' | 'Text' | 'AutoComplete' | 'AutoCompleteMulti' | 'Currency' | 'Boolean' | 'MultiField' | 'Image' | null;
interface IGridKeyValueDto {
    Key: string | number;
    Value: string;
}
interface IGridColumn {
    name: string;
    label?: string;
    visible: boolean;
    editable?: boolean;
    requiredForEdit?: boolean;
    filterable?: boolean;
    sortable?: boolean;
    defaultSortColumn?: string;
    controlType?: GridControlType;
    values?: IGridKeyValueDto[];
    apiUrl?: string;
    pinned?: boolean;
    menuItems?: MenuItem[];
    groupName?: string;
    groupOrder?: number;
    width?: number;
    pinLocationInPx?: number;
    sortOrder?: number;
    _controlType?: GridControlType;
}

interface GridColumnGroup {
    groupName: string;
    columns: IGridColumn[];
    groupOrder?: number;
}
type ColumnManagementData = {
    columns: IGridColumn[];
    filteredColumns: IGridColumn[];
    groupByField?: IGridColumn;
    maxPinnedColumns?: number;
};
declare class ColumnManagementModalComponent implements OnInit {
    dialogRef: MatDialogRef<ColumnManagementModalComponent>;
    data: ColumnManagementData;
    leftColumnGroups: GridColumnGroup[];
    originalLeftColumnGroups: GridColumnGroup[];
    rightColumns: IGridColumn[];
    originalRightColumns: IGridColumn[];
    groupByField: IGridColumn | null;
    toggleMap: {
        [key: number]: boolean;
    };
    queryString: string;
    tooltipDirection: TooltipDirectionPreference;
    private maxPinnedColumns;
    constructor(dialogRef: MatDialogRef<ColumnManagementModalComponent>, data: ColumnManagementData);
    private createColumnGroups;
    ngOnInit(): void;
    handleClickCancel(): void;
    handleClickSave(): void;
    handleSearchStringChange(query: string): void;
    handleCheck(column: IGridColumn): void;
    drop(event: CdkDragDrop<string[]>): void;
    handleUnpin(column: IGridColumn): void;
    handleUngroup(): void;
    private filterGridColumns;
    static ɵfac: i0.ɵɵFactoryDeclaration<ColumnManagementModalComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ColumnManagementModalComponent, "lib-column-management-modal", never, {}, {}, never, never, false, never>;
}

declare enum Orders {
    SIC = "SIC",// SEARCH-BAR IN THE ORDER SEARCH-ICON => INPUT => CLEAR-ICON
    ICS = "ICS",// SEARCH-BAR IN THE ORDER INPUT => CLEAR-ICON => SEARCH-ICON
    CIS = "CIS"
}
declare class SearchBarComponent implements OnChanges {
    placeholderText: string;
    inputText: string;
    order: Orders;
    clearIcon: string;
    searchIcon: string;
    searchStringChange: EventEmitter<any>;
    cleared: EventEmitter<any>;
    focused: EventEmitter<any>;
    unfocused: EventEmitter<any>;
    input: ElementRef;
    readonly searchInputControl: FormControl<string>;
    orders: typeof Orders;
    ngOnChanges(changes: SimpleChanges): void;
    /**
     *
     * A method to return user input to default
     */
    clear(): void;
    /**
     *
     * A method to focus on the input element
     */
    focus(): void;
    handleFocus(): void;
    handleFocusOut(): void;
    /**
     *
     * A method to notify subscribers of user input
     */
    emit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchBarComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SearchBarComponent, "lib-search-bar", never, { "placeholderText": { "alias": "placeholderText"; "required": false; }; "inputText": { "alias": "inputText"; "required": false; }; "order": { "alias": "order"; "required": false; }; "clearIcon": { "alias": "clearIcon"; "required": false; }; "searchIcon": { "alias": "searchIcon"; "required": false; }; }, { "searchStringChange": "searchStringChange"; "cleared": "cleared"; "focused": "focused"; "unfocused": "unfocused"; }, never, ["[right]"], false, never>;
}

declare class SearchBarModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchBarModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<SearchBarModule, [typeof SearchBarComponent], [typeof i2.CommonModule, typeof i4.ReactiveFormsModule], [typeof SearchBarComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<SearchBarModule>;
}

declare class TooltipComponent {
    message: SafeHtml;
    title: SafeHtml;
    hideIcon: boolean;
    directionPreference: TooltipDirectionPreference;
    readonly directionPreferences: typeof TooltipDirectionPreference;
    static ɵfac: i0.ɵɵFactoryDeclaration<TooltipComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TooltipComponent, "lib-tooltip", never, { "message": { "alias": "message"; "required": false; }; "title": { "alias": "title"; "required": false; }; "hideIcon": { "alias": "hideIcon"; "required": false; }; "directionPreference": { "alias": "directionPreference"; "required": false; }; }, {}, never, never, false, never>;
}

declare class TooltipDirective implements OnDestroy, OnInit {
    private elementRef;
    private overlay;
    private overlayPositionBuilder;
    private renderer;
    private overlayRef;
    private delayTimer;
    private readonly minimumVerticalSpaceNeeded;
    private readonly minimumHorizontalSpaceNeeded;
    private readonly tooltipOffsetAmount;
    libTooltip: string | SafeHtml;
    title: SafeHtml;
    hideIcon: boolean;
    delayTime: number;
    holdTimeForMobile: number;
    directionPreference: TooltipDirectionPreference;
    private holdTimeout;
    mouseEnter(): void;
    mouseOut(): void;
    onClick(): void;
    private onTouchStart;
    private onTouchEnd;
    constructor(elementRef: ElementRef, overlay: Overlay, overlayPositionBuilder: OverlayPositionBuilder, renderer: Renderer2);
    ngOnInit(): void;
    ngOnDestroy(): void;
    private show;
    private handleBottomShow;
    private applyPositionStrategy;
    private applyCarotClass;
    private handleTopShow;
    private handleLeftShow;
    private handleRightShow;
    private getBoundingRect;
    private createComponentRef;
    private setComponentVariables;
    private hide;
    private hasRoomToDisplay;
    private generateVerticalPosition;
    private generateHorizontalPosition;
    static ɵfac: i0.ɵɵFactoryDeclaration<TooltipDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TooltipDirective, "[libTooltip]", never, { "libTooltip": { "alias": "libTooltip"; "required": false; }; "title": { "alias": "title"; "required": false; }; "hideIcon": { "alias": "hideIcon"; "required": false; }; "delayTime": { "alias": "delayTime"; "required": false; }; "holdTimeForMobile": { "alias": "holdTimeForMobile"; "required": false; }; "directionPreference": { "alias": "directionPreference"; "required": false; }; }, {}, never, never, false, never>;
}

declare class TooltipModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<TooltipModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<TooltipModule, [typeof TooltipComponent, typeof TooltipDirective], [typeof i2.CommonModule, typeof i4$3.OverlayModule, typeof i17.MatTooltipModule, typeof i6$1.ScrollingModule], [typeof TooltipDirective]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<TooltipModule>;
}

declare class ColumnManagementModalModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<ColumnManagementModalModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<ColumnManagementModalModule, [typeof ColumnManagementModalComponent], [typeof i2.CommonModule, typeof SearchBarModule, typeof i3$1.DragDropModule, typeof TooltipModule, typeof ButtonsModule, typeof i4$1.TranslateModule, typeof DashedCheckboxModule], never>;
    static ɵinj: i0.ɵɵInjectorDeclaration<ColumnManagementModalModule>;
}

/**
 * This model class can be used in conjunction with an ItemSummary to provide
 * an icon representing some action that can be executed on the ItemSummary
 * and a function to define said action.
 *
 * Typical usage is for the calling ItemSummary to pass itself as an argument to the
 * action so that it can be updated pending completion of the action. For example,
 * the ActionHandler might initially be defined with a '+' icon and an action which
 * adds the ItemSummary to a list. Then, once the addition is completed, since the
 * consumer has a handle on the ItemSummary, they can update the ActionHandler to
 * contain a '-' icon and change the action to remove the ItemSummary from the list.
 */
declare class ItemActionHandler {
    displayHtml: SafeHtml;
    action: (arg: any) => any;
    toolTip: SafeHtml;
    constructor(displayHtml: SafeHtml, action: (arg: any) => any, toolTip?: SafeHtml);
}

declare class ConfirmationModalComponent {
    dialogRef: MatDialogRef<ConfirmationModalComponent>;
    data: any;
    title: string;
    headerIconTray: ItemActionHandler[];
    dialogMessage: string;
    confirmText: string;
    warningModal: boolean;
    hideCancelAction: boolean;
    readonly searchModeThreshold = 50;
    constructor(dialogRef: MatDialogRef<ConfirmationModalComponent>, data: any);
    /**
     * Closes the dialog
     */
    handleClickCancel(): void;
    /**
     * Closes the dialog and returns true to the dialog owner.
     */
    handleClickSave(): void;
    headerIconClicked(icon: ItemActionHandler): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmationModalComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ConfirmationModalComponent, "lib-confirmation-modal", never, {}, {}, never, never, false, never>;
}

declare class ConfirmationModalModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmationModalModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<ConfirmationModalModule, [typeof ConfirmationModalComponent], [typeof i2.CommonModule, typeof TooltipModule, typeof i4$4.MatDialogModule, typeof ButtonsModule, typeof i4$1.TranslateModule], [typeof ConfirmationModalComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<ConfirmationModalModule>;
}

declare class ContentViewCardService {
    private cardExpansionState;
    private cardExpanded;
    constructor();
    setCardExpansionState(expansionState: boolean): void;
    onCardExpansion(): Observable<boolean>;
    getCardExpansionState(): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentViewCardService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ContentViewCardService>;
}

declare class ContentCardHeadingDirective implements OnInit {
    private el;
    constructor(el: ElementRef<HTMLDivElement>);
    ngOnInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentCardHeadingDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<ContentCardHeadingDirective, "[heading]", never, {}, {}, never, never, false, never>;
}

declare class ContentCardSectionDirective implements OnInit {
    private el;
    constructor(el: ElementRef<HTMLDivElement>);
    ngOnInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentCardSectionDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<ContentCardSectionDirective, "[section]", never, {}, {}, never, never, false, never>;
}

declare class ContentCardSubHeadingsDirective implements OnInit {
    private el;
    constructor(el: ElementRef);
    ngOnInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentCardSubHeadingsDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<ContentCardSubHeadingsDirective, "[subHeadings]", never, {}, {}, never, never, false, never>;
}

declare class ContentViewCardComponent implements OnInit, OnChanges {
    private contentViewCardService;
    private cdr;
    sections: QueryList<ContentCardSectionDirective>;
    headings: QueryList<ContentCardHeadingDirective>;
    subHeadings: QueryList<ContentCardSubHeadingsDirective>;
    cardExpanded: boolean;
    constructor(contentViewCardService: ContentViewCardService, cdr: ChangeDetectorRef);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentViewCardComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ContentViewCardComponent, "lib-content-view-card", never, { "cardExpanded": { "alias": "cardExpanded"; "required": false; }; }, {}, ["sections", "headings", "subHeadings"], ["*"], false, never>;
}

declare class ContentCardXLargeSubHeadingsDirective implements OnInit {
    private el;
    constructor(el: ElementRef);
    ngOnInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentCardXLargeSubHeadingsDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<ContentCardXLargeSubHeadingsDirective, "[xLSubHeadings]", never, {}, {}, never, never, false, never>;
}

declare class ContentCardFirstColumnDirective implements OnInit {
    private el;
    private renderer;
    imgSrc: string;
    constructor(el: ElementRef<HTMLElement>, renderer: Renderer2);
    ngOnInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentCardFirstColumnDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<ContentCardFirstColumnDirective, "[libContentCardFirstColumn]", never, { "imgSrc": { "alias": "imgSrc"; "required": false; }; }, {}, never, never, false, never>;
}

declare class ContentCardLastColumnDirective implements OnInit {
    private el;
    constructor(el: ElementRef<HTMLElement>);
    ngOnInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentCardLastColumnDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<ContentCardLastColumnDirective, "[libContentLastColumn]", never, {}, {}, never, never, false, never>;
}

declare class ContentToggleDirective implements OnInit, OnDestroy {
    private templateRef;
    private viewContainer;
    private contentViewCardService;
    private destroy$;
    constructor(templateRef: TemplateRef<HTMLElement>, viewContainer: ViewContainerRef, contentViewCardService: ContentViewCardService);
    ngOnInit(): void;
    ngOnDestroy(): void;
    private setElementViewState;
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentToggleDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<ContentToggleDirective, "[libContentToggle]", never, {}, {}, never, never, false, never>;
}

declare class ContentViewCardModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentViewCardModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<ContentViewCardModule, [typeof ContentViewCardComponent, typeof ContentCardSectionDirective, typeof ContentCardHeadingDirective, typeof ContentCardSubHeadingsDirective, typeof ContentCardXLargeSubHeadingsDirective, typeof ContentCardFirstColumnDirective, typeof ContentCardLastColumnDirective, typeof ContentToggleDirective], [typeof i2.CommonModule, typeof i4.FormsModule, typeof i4$1.TranslateModule, typeof BaseCardModule], [typeof ContentViewCardComponent, typeof ContentCardSectionDirective, typeof ContentCardHeadingDirective, typeof ContentCardSubHeadingsDirective, typeof ContentCardXLargeSubHeadingsDirective, typeof ContentCardFirstColumnDirective, typeof ContentCardLastColumnDirective, typeof ContentToggleDirective]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<ContentViewCardModule>;
}

/**
 * DEV NOTES:
 * - jsdom (used by Jest) does NOT have a PointerEvent constructor. Tests must create
 *   MouseEvent objects and cast them as PointerEvent, or use a helper like
 *   `new MouseEvent('pointerdown', { clientY: 200 }) as unknown as PointerEvent`.
 * - ResizeObserver must be mocked globally in the test setup (jest setup file or
 *   beforeAll) because jsdom doesn't implement it.
 * - Drag math: `delta = startY - event.clientY`. Positive delta = dragging UP = expand.
 *   The snap thresholds depend on the container's `clientHeight` (mock to 400 in tests).
 */
declare class DrawerComponent implements OnInit, AfterViewInit, OnDestroy {
    private el;
    private cdr;
    /** Minimum height as a fraction of the container (0–1). The handle always stays grabbable. */
    minHeight: number;
    /** Maximum height as a fraction of the container (0–1). */
    maxHeight: number;
    /** Initial height as a fraction of the container (0–1). */
    initialHeight: number;
    /**
     * When true the drawer snaps to `minHeight` or `maxHeight` on release.
     * When false (default) the drawer stays wherever the user drops it.
     */
    sticky: boolean;
    /** Whether the drag handle is visible. */
    showHandle: boolean;
    /** Custom CSS class applied to the drawer panel. */
    customClass: string;
    /**
     * V2 plan A2 — Controls drawer visibility. When false the drawer collapses
     * to height 0. The parent component binds this to `activityDrawerOpen`.
     * Implemented as a setter to avoid ExpressionChangedAfterItHasBeenChecked errors.
     */
    set open(val: boolean);
    get open(): boolean;
    /** Emits the current open state whenever it changes. */
    openChange: EventEmitter<boolean>;
    /** Emits when the user explicitly dismisses the drawer (close button or drag down). */
    dismissed: EventEmitter<void>;
    /** Emits the current height fraction whenever the drawer moves or snaps. */
    heightChange: EventEmitter<number>;
    drawerPanel: ElementRef<HTMLElement>;
    handleZone: ElementRef<HTMLElement>;
    dragging: boolean;
    private startY;
    private startHeightPx;
    private containerHeight;
    private currentFraction;
    private resizeObserver;
    private _open;
    private boundMove;
    private boundUp;
    constructor(el: ElementRef<HTMLElement>, cdr: ChangeDetectorRef);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    private applyOpenState;
    onPointerDown(e: PointerEvent): void;
    private onPointerMove;
    private onPointerUp;
    private setHeight;
    private setHeightRaw;
    private resolveContainerHeight;
    private clampFraction;
    static ɵfac: i0.ɵɵFactoryDeclaration<DrawerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DrawerComponent, "lib-drawer", never, { "minHeight": { "alias": "minHeight"; "required": false; }; "maxHeight": { "alias": "maxHeight"; "required": false; }; "initialHeight": { "alias": "initialHeight"; "required": false; }; "sticky": { "alias": "sticky"; "required": false; }; "showHandle": { "alias": "showHandle"; "required": false; }; "customClass": { "alias": "customClass"; "required": false; }; "open": { "alias": "open"; "required": false; }; }, { "openChange": "openChange"; "dismissed": "dismissed"; "heightChange": "heightChange"; }, never, ["*"], false, never>;
}

declare class DrawerModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<DrawerModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<DrawerModule, [typeof DrawerComponent], [typeof i2.CommonModule], [typeof DrawerComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<DrawerModule>;
}

declare class ErrorMessageComponent {
    control: FormControl | AbstractControl | null;
    minLength: number;
    maxlength: number;
    customErrorMessage: string;
    requiredErrorMessage: string;
    freeContent: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<ErrorMessageComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ErrorMessageComponent, "app-error-message", never, { "control": { "alias": "control"; "required": false; }; "minLength": { "alias": "minLength"; "required": false; }; "maxlength": { "alias": "maxlength"; "required": false; }; "customErrorMessage": { "alias": "customErrorMessage"; "required": false; }; "requiredErrorMessage": { "alias": "requiredErrorMessage"; "required": false; }; "freeContent": { "alias": "freeContent"; "required": false; }; }, {}, never, never, true, never>;
}

declare class ExpansionPanelComponent {
    title: string;
    hideDefaultHeader: boolean;
    alwaysExpanded: boolean;
    expanded: boolean;
    showToggleText: boolean;
    descriptionText: string;
    collapsedHeaderIcon: string;
    expandedHeaderIcon: string;
    expandedChange: EventEmitter<boolean>;
    count: number;
    useSlideToggle: boolean;
    iconTray?: ItemActionHandler[];
    DirectionPreference: typeof TooltipDirectionPreference;
    togglePanel(): void;
    handleHeaderClick($event: Event): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ExpansionPanelComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ExpansionPanelComponent, "lib-expansion-panel", never, { "title": { "alias": "title"; "required": false; }; "hideDefaultHeader": { "alias": "hideDefaultHeader"; "required": false; }; "alwaysExpanded": { "alias": "alwaysExpanded"; "required": false; }; "expanded": { "alias": "expanded"; "required": false; }; "showToggleText": { "alias": "showToggleText"; "required": false; }; "descriptionText": { "alias": "descriptionText"; "required": false; }; "collapsedHeaderIcon": { "alias": "collapsedHeaderIcon"; "required": false; }; "expandedHeaderIcon": { "alias": "expandedHeaderIcon"; "required": false; }; "count": { "alias": "count"; "required": false; }; "useSlideToggle": { "alias": "useSlideToggle"; "required": false; }; "iconTray": { "alias": "iconTray"; "required": false; }; }, { "expandedChange": "expandedChange"; }, never, ["[panelHeaderTemplate]", "[collapsedPanelRightContent]", "[panelHeaderRightContent]", "*"], false, never>;
}

declare class ExpansionPanelModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<ExpansionPanelModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<ExpansionPanelModule, [typeof ExpansionPanelComponent], [typeof i2.CommonModule, typeof i3$3.MatExpansionModule, typeof TooltipModule], [typeof ExpansionPanelComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<ExpansionPanelModule>;
}

declare enum FeedbackModalVariant {
    Screenshot = "Screenshot",
    Mini = "Mini"
}

declare class FeedbackModalComponent implements OnInit {
    shakeEnabled: boolean;
    private modal;
    private feedbackService;
    ngOnInit(): void;
    /**
     * close callback
     */
    close(): void;
    /**
     * Confirm callback
     */
    confirm(): void;
    /**
     * Updates the local storage when the form state changes
     * @param value whether the shake is enabled
     */
    shakeEnabledChange(value: any): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<FeedbackModalComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FeedbackModalComponent, "lib-feedback-modal", never, {}, {}, never, never, false, never>;
}

declare enum DrawingMode {
    Free = "free",
    Erase = "erase",
    Line = "line",
    None = "none"
}

declare class FeedbackScreenshotComponent implements AfterViewInit, OnDestroy {
    canvasDraw: ElementRef<HTMLCanvasElement>;
    canvasBase: ElementRef<HTMLCanvasElement>;
    screenshot: string;
    eraserSize: number;
    drawingMode: DrawingMode;
    private lineStart;
    private feedbackService;
    readonly window: Window;
    readonly document: Document;
    hideToolbar: boolean;
    isDrawingLine: boolean;
    isDrawingFree: boolean;
    isErasing: boolean;
    defaultColor: string;
    sliderColorValue: number;
    private ctxDraw;
    private ctxBase;
    private componentdestroyed$;
    private strokes;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    private setupCanvasSizes;
    private drawBaseImage;
    enableFreeDraw(): void;
    enableErasing(): void;
    enableLineMode(): void;
    startLine(e: PointerEvent): void;
    drawLine(e: PointerEvent): void;
    endLine(e: PointerEvent): void;
    drawFree(e: PointerEvent): void;
    stopDrawingFree(): void;
    startDrawingFree(e: PointerEvent): void;
    private performErase;
    startErase(e: PointerEvent): void;
    erase(e: PointerEvent): void;
    stopErase(): void;
    private getEventCoords;
    handleColorSelected(res: {
        current: string;
        value: number;
    }): void;
    undoLastStroke(): void;
    done(): void;
    cancel(): void;
    private exportCombinedCanvas;
    private redrawCanvas;
    static ɵfac: i0.ɵɵFactoryDeclaration<FeedbackScreenshotComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FeedbackScreenshotComponent, "lib-feedback-screenshot", never, { "screenshot": { "alias": "screenshot"; "required": false; }; "eraserSize": { "alias": "eraserSize"; "required": false; }; }, {}, never, never, false, never>;
}

declare class FeedbackSendComponent implements OnInit, OnDestroy {
    toggleTemplate: TemplateRef<HTMLElement>;
    discardTemplate: TemplateRef<HTMLElement>;
    shakeEnabled: boolean;
    topics: string[];
    private feedbackService;
    private accelerometerService;
    private cdr;
    private location;
    private navCtrl;
    selectedTopic: string;
    singleImageUploadedUrl: string;
    imagesUrl: Record<string, string | null>;
    textareaContent: string;
    isFormValidState: boolean;
    nestedMenuItems: ILibMenuItem[];
    private pressTimer;
    private readonly componentDestroyed$;
    ngOnInit(): void;
    ngOnDestroy(): void;
    onToggleChange(event: any, item: ILibMenuItem): void;
    onMouseDown(): void;
    onMouseUp(): void;
    onMouseLeave(): void;
    onTouchStart(): void;
    onTouchEnd(): void;
    onUploadSingleImage(images: ImageModel[], field: string): void;
    onRemoveSingleImage(field: string): void;
    getImageLabel(index: number): string;
    selectTopic(topic: string): void;
    submit(): void;
    goBack(): void;
    gotoScreenshot(): void;
    updateFormValidState(): void;
    onSubmitDiscard(): void;
    private startTimer;
    private clearPressTimer;
    private onLongPress;
    private getScreenshotImage;
    private onReportChange;
    private onSubmit;
    static ɵfac: i0.ɵɵFactoryDeclaration<FeedbackSendComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FeedbackSendComponent, "lib-feedback-send", never, {}, {}, never, never, false, never>;
}

declare class FeedbackSuccessComponent {
    private router;
    constructor(router: Router);
    goToHome(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<FeedbackSuccessComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FeedbackSuccessComponent, "lib-feedback-success", never, {}, {}, never, never, false, never>;
}

declare class BottomModalComponent implements OnDestroy, AfterViewInit {
    cdk: ChangeDetectorRef;
    bottomModalRef: IonModal;
    headerLeftContent: TemplateRef<ElementRef>;
    headerRightContent: TemplateRef<ElementRef>;
    breakpoints: number[];
    initialBreakpoint: number;
    titleTemplate: TemplateRef<NgIfContext<boolean>>;
    checkboxText: string;
    confirmationControl: FormControl<boolean>;
    set isOpen(open: boolean);
    get isOpen(): boolean;
    backdropDismiss: boolean;
    canDismiss: boolean;
    showArrow: boolean;
    showBackBtn: boolean;
    showConfirm: boolean;
    showCloseBtn: boolean;
    loading: boolean;
    showHeaderSeparator: boolean;
    title: string;
    confirmationTitle: string;
    confirmationMsg: string;
    confirmButton: string;
    confirmCancelButton: string;
    description: string;
    secondaryButtonTitle: string;
    submitButtonTitle: string;
    cancelButtonTitle: string;
    validModal: boolean;
    adaptToContentHeight: boolean;
    customClass: string;
    isOpenChange: EventEmitter<boolean>;
    breakpointChange: EventEmitter<number>;
    closeModal: EventEmitter<void>;
    submitModal: EventEmitter<void>;
    secondaryButtonClick: EventEmitter<void>;
    backClick: EventEmitter<void>;
    showConfirmChange: EventEmitter<boolean>;
    confirmEvent: EventEmitter<void>;
    private _isOpen;
    constructor(cdk: ChangeDetectorRef);
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    onDidDismiss(): void;
    onBreakpointDidChange(event: CustomEvent<ModalBreakpointChangeEventDetail>): void;
    updateInitialBreakpoint(initialBreakpoint: number): void;
    onClickBack(): void;
    closeLibBottomModal(): void;
    onConfirm(confirm?: boolean): void;
    private handelOpenModal;
    static ɵfac: i0.ɵɵFactoryDeclaration<BottomModalComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<BottomModalComponent, "lib-bottom-modal", never, { "breakpoints": { "alias": "breakpoints"; "required": false; }; "initialBreakpoint": { "alias": "initialBreakpoint"; "required": false; }; "isOpen": { "alias": "isOpen"; "required": false; }; "backdropDismiss": { "alias": "backdropDismiss"; "required": false; }; "canDismiss": { "alias": "canDismiss"; "required": false; }; "showArrow": { "alias": "showArrow"; "required": false; }; "showBackBtn": { "alias": "showBackBtn"; "required": false; }; "showConfirm": { "alias": "showConfirm"; "required": false; }; "showCloseBtn": { "alias": "showCloseBtn"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "showHeaderSeparator": { "alias": "showHeaderSeparator"; "required": false; }; "title": { "alias": "title"; "required": false; }; "confirmationTitle": { "alias": "confirmationTitle"; "required": false; }; "confirmationMsg": { "alias": "confirmationMsg"; "required": false; }; "confirmButton": { "alias": "confirmButton"; "required": false; }; "confirmCancelButton": { "alias": "confirmCancelButton"; "required": false; }; "description": { "alias": "description"; "required": false; }; "secondaryButtonTitle": { "alias": "secondaryButtonTitle"; "required": false; }; "submitButtonTitle": { "alias": "submitButtonTitle"; "required": false; }; "cancelButtonTitle": { "alias": "cancelButtonTitle"; "required": false; }; "validModal": { "alias": "validModal"; "required": false; }; "adaptToContentHeight": { "alias": "adaptToContentHeight"; "required": false; }; "customClass": { "alias": "customClass"; "required": false; }; }, { "isOpenChange": "isOpenChange"; "breakpointChange": "breakpointChange"; "closeModal": "closeModal"; "submitModal": "submitModal"; "secondaryButtonClick": "secondaryButtonClick"; "backClick": "backClick"; "showConfirmChange": "showConfirmChange"; "confirmEvent": "confirmEvent"; }, ["headerLeftContent", "headerRightContent"], ["*"], false, never>;
}

declare class DynamicModalContainerDirective implements AfterViewInit {
    viewContainerRef: ViewContainerRef;
    private injector;
    private cdr;
    modalComponent: Type<unknown>;
    modalComponentData: unknown;
    constructor(viewContainerRef: ViewContainerRef, injector: Injector, cdr: ChangeDetectorRef);
    ngAfterViewInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DynamicModalContainerDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<DynamicModalContainerDirective, "[libDynamicModalContainer]", never, { "modalComponent": { "alias": "modalComponent"; "required": false; }; "modalComponentData": { "alias": "modalComponentData"; "required": false; }; }, {}, never, never, false, never>;
}

declare class ProgressBarComponent implements OnInit {
    private cdref;
    progBarCurrentStep: number;
    progBarTotalSteps: number;
    totalStepsArr: number[];
    stepWeight: number;
    constructor(cdref: ChangeDetectorRef);
    ngOnInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ProgressBarComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ProgressBarComponent, "lib-progress-bar", never, { "progBarCurrentStep": { "alias": "progBarCurrentStep"; "required": false; }; "progBarTotalSteps": { "alias": "progBarTotalSteps"; "required": false; }; }, {}, never, never, false, never>;
}

declare class ProgressBarModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<ProgressBarModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<ProgressBarModule, [typeof ProgressBarComponent], [typeof i2.CommonModule, typeof i3.IonicModule, typeof i4$1.TranslateModule, typeof i4.ReactiveFormsModule, typeof DashedCheckboxModule], [typeof ProgressBarComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<ProgressBarModule>;
}

declare class LibModalModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<LibModalModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<LibModalModule, [typeof LibModalComponent, typeof BottomModalComponent, typeof DynamicModalContainerDirective], [typeof BaseCardModule, typeof i2.CommonModule, typeof i3.IonicModule, typeof i4$1.TranslateModule, typeof i4.ReactiveFormsModule, typeof DashedCheckboxModule, typeof ProgressBarModule, typeof ButtonsModule, typeof SectionSeparatorComponent, typeof i13$1.MatRippleModule, typeof i7.MatButtonModule], [typeof LibModalComponent, typeof BottomModalComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<LibModalModule>;
}

/**
 * This model class contains a label, value and disabled boolean
 */
declare class SelectOption<T> {
    label: string;
    value: T;
    disabled?: boolean | undefined;
    isHidden?: boolean | undefined;
    selected?: boolean | undefined;
    image?: string;
    loading?: boolean | undefined;
    separator?: boolean | undefined;
    addOnTemplateRef?: any;
    constructor(label: string, value: T, disabled?: boolean, isHidden?: boolean, selected?: boolean, image?: string, loading?: boolean);
}

declare class MultiselectComponent implements OnInit, OnDestroy {
    private changeDetectorRef;
    dialog: MatDialog;
    optionGroups: {
        groupName: string;
        options: SelectOption<any>[];
    }[];
    selectedOptions: SelectOption<any>[];
    fieldName: string;
    dialogTitle: string;
    required: boolean;
    showRequiredIndicator: boolean;
    submitted: boolean;
    optionDeleteConfirmationObsv: Observable<{
        fieldName: string;
        fieldValue: any;
    }>;
    headerIconTray: ItemActionHandler[];
    showDialogMessage: boolean;
    disabled: boolean;
    optionDelete: EventEmitter<{
        fieldName: string;
        fieldValue: any;
    }>;
    selectedOptionsChange: EventEmitter<SelectOption<any>[]>;
    private componentDestroyed$;
    constructor(changeDetectorRef: ChangeDetectorRef, dialog: MatDialog);
    ngOnInit(): void;
    ngOnDestroy(): void;
    /**
     * Appends the options selected in the dialog to the selected options
     * and emits an event containing the new list of selected options
     *
     * @param result - The options selected via the dialog
     */
    private handleDialogResult;
    /**
     * Removes an option from the selected options list.
     *
     * @param option - The option to remove.
     */
    handleOptionRemove(option: SelectOption<any>, event: any): void;
    handleOptionDeletedAction(option: SelectOption<any>): void;
    /**
     * Opens a dialog allowing the user to add options.
     */
    handleOptionAdd(): void;
    getTotalCount(): number;
    static ɵfac: i0.ɵɵFactoryDeclaration<MultiselectComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MultiselectComponent, "lib-multiselect", never, { "optionGroups": { "alias": "optionGroups"; "required": false; }; "selectedOptions": { "alias": "selectedOptions"; "required": false; }; "fieldName": { "alias": "fieldName"; "required": false; }; "dialogTitle": { "alias": "dialogTitle"; "required": false; }; "required": { "alias": "required"; "required": false; }; "showRequiredIndicator": { "alias": "showRequiredIndicator"; "required": false; }; "submitted": { "alias": "submitted"; "required": false; }; "optionDeleteConfirmationObsv": { "alias": "optionDeleteConfirmationObsv"; "required": false; }; "headerIconTray": { "alias": "headerIconTray"; "required": false; }; "showDialogMessage": { "alias": "showDialogMessage"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "optionDelete": "optionDelete"; "selectedOptionsChange": "selectedOptionsChange"; }, never, never, false, never>;
}

declare class MultiselectDialogComponent {
    dialogRef: MatDialogRef<MultiselectDialogComponent>;
    data: any;
    title: string;
    headerIconTray: ItemActionHandler[];
    optionGroups: {
        groupName: string;
        options: SelectOption<any>[];
    }[];
    selectedOptions: SelectOption<any>[];
    totalOptionGroups: {
        groupName: string;
        options: SelectOption<any>[];
    }[];
    totalCount: number;
    showDialogMessage: boolean;
    readonly searchModeThreshold = 50;
    constructor(dialogRef: MatDialogRef<MultiselectDialogComponent>, data: any);
    search(value: string): void;
    clearSearch(): void;
    /**
     * Indicates that an option has been checked or unchecked.
     *
     * @param event - A tuple containing the option in question and its current checked state.
     */
    handleCheckedValueChange(event: [SelectOption<any>, boolean]): void;
    /**
     * Closes the dialog
     */
    handleClickCancel(): void;
    getLeftOptions(options: SelectOption<any>[]): SelectOption<any>[];
    getRightOptions(options: SelectOption<any>[]): SelectOption<any>[];
    headerIconClicked(icon: ItemActionHandler): void;
    /**
     * Closes the dialog and returns the selected options to the dialog owner.
     */
    handleClickSave(): void;
    getTooltipString(tooltip: any): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<MultiselectDialogComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MultiselectDialogComponent, "lib-multiselect-dialog", never, {}, {}, never, never, false, never>;
}

declare class MultiselectModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<MultiselectModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<MultiselectModule, [typeof MultiselectComponent, typeof MultiselectDialogComponent], [typeof i2.CommonModule, typeof DashedCheckboxModule, typeof i4$4.MatDialogModule, typeof SearchBarModule, typeof TooltipModule, typeof SectionSeparatorComponent, typeof ButtonsModule], [typeof MultiselectComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<MultiselectModule>;
}

declare enum FormFieldType {
    date = "date",
    text = "text",
    textarea = "textarea",
    typeahead = "typeahead",
    multiselect = "multiselect",
    select = "select",
    checkbox = "checkbox",
    toggle = "toggle",
    radio = "radio",
    textlist = "textlist",
    number = "number",
    message = "message",
    time = "time",
    multifield = "multifield",
    action = "action",
    currency = "currency",
    banner = "banner",
    percentage = "percentage",
    multiselectdropdown = "multiselectdropdown",
    hyperlink = "hyperlink",
    injectable = "injectable",
    datetime = "datetime",
    rating = "rating",
    incrementer = "incrementer",
    range = "range",
    password = "password",
    tel = "tel",
    cardNumber = "cardNumber",
    cardExpiry = "cardExpiry",
    selectEnhanced = "selectEnhanced",
    selectable = "selectable"
}

declare class FormFieldComponent implements OnInit, OnChanges, OnDestroy, AfterViewInit {
    private dateFormats;
    private decimalPipe;
    private changeDetectorRef;
    matSelect: MatSelect;
    textInput: ElementRef;
    readonly UNIQUE_RADIOGROUP_FORM_KEY: string;
    focused: boolean;
    passwordVisible: boolean;
    FormFieldType: typeof FormFieldType;
    private _dateFormat;
    dateInputPlaceholder: string;
    private componentDestroyed$;
    DirectionPreference: typeof TooltipDirectionPreference;
    searchOptions$: ReplaySubject<SelectOption<string | number | boolean>[]>;
    showEditor: boolean;
    selectOptions: SelectOption<string | number | boolean>[];
    editorContentStyle: string;
    fieldName: string;
    label: string;
    placeholder: string;
    message: string;
    useTooltips: boolean;
    descriptionText: string;
    formFieldControl: UntypedFormControl;
    submitted: boolean;
    required: boolean;
    type: FormFieldType;
    plusIconUrl: string;
    minusIconUrl: string;
    maxLength: number;
    max: number;
    min: number;
    pinValue: boolean;
    dualKnobs: boolean;
    reverseBarColor: boolean;
    defaultValue: string | number | boolean;
    noMargin: boolean;
    menuItemContent: any;
    item: any;
    set options(selectOptions: SelectOption<string | number | boolean>[] | undefined);
    iconHtml: SafeHtml | undefined;
    invalidPatternMessage: string;
    set dateFormat(format: string);
    dateInput: ElementRef;
    currencySymbol: string;
    hideCents: boolean;
    isEditable: boolean;
    rowEditConfirmationObsv: Observable<{
        fieldName: string;
        fieldValue: any;
    }> | undefined;
    errorInlineMode: boolean;
    showLabelInRequiredErrorMessage: boolean;
    decimalPosition: number | undefined;
    hyperlinkTarget: '_blank' | '_self' | '_parent' | '_top';
    readOnly: boolean;
    focus: boolean;
    showRequiredIndicator: boolean;
    maxDate: Date | undefined;
    minDate: Date | undefined;
    radioTranslateLabels: boolean;
    radioDeselectable: boolean;
    radioRippleEffect: boolean;
    rowEdit: EventEmitter<{
        fieldName: string;
        fieldValue: any;
    }>;
    focusOut: EventEmitter<void>;
    valueChange: EventEmitter<string | number | boolean>;
    constructor(dateFormats: any, decimalPipe: DecimalPipe, changeDetectorRef: ChangeDetectorRef);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngAfterViewInit(): void;
    searchMultiSelect(query: string): void;
    private handleTypeUpdate;
    ngOnDestroy(): void;
    /**
     * A method to clear the value of the control name passed to it
     *
     * @param controlName - Name for control of cleared input
     */
    clear(): void;
    /**
     * @param $event - Object which contains date selected using mat-datepicker or entered manually by user
     *
     * Transform user entered date using provided dateFormat
     */
    /**
     * @param $event - Object which contains date selected using mat-datepicker or entered manually by user
     *
     * Transform user entered date using provided dateFormat
     */
    processDate(value: null | Date | FocusEvent | string): void;
    processNumber(value: number | string): void;
    handleFocus(): void;
    handleFocusOut(event: FocusEvent): void;
    handleFieldClicked(event: any): void;
    handleClick(event: any): void;
    handleCheckboxOptionChange(): void;
    onMultiCheckboxToggle(option: SelectOption<string | number | boolean>, selected: boolean): void;
    decrement(): void;
    increment(): void;
    formFieldRadioOptionClick(radioOption: SelectOption<string | number | boolean>): void;
    togglePasswordVisibility(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<FormFieldComponent, [{ optional: true; }, null, null]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FormFieldComponent, "lib-form-field", never, { "fieldName": { "alias": "fieldName"; "required": false; }; "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "message": { "alias": "message"; "required": false; }; "useTooltips": { "alias": "useTooltips"; "required": false; }; "descriptionText": { "alias": "descriptionText"; "required": false; }; "formFieldControl": { "alias": "formFieldControl"; "required": false; }; "submitted": { "alias": "submitted"; "required": false; }; "required": { "alias": "required"; "required": false; }; "type": { "alias": "type"; "required": false; }; "plusIconUrl": { "alias": "plusIconUrl"; "required": false; }; "minusIconUrl": { "alias": "minusIconUrl"; "required": false; }; "maxLength": { "alias": "maxLength"; "required": false; }; "max": { "alias": "max"; "required": false; }; "min": { "alias": "min"; "required": false; }; "pinValue": { "alias": "pinValue"; "required": false; }; "dualKnobs": { "alias": "dualKnobs"; "required": false; }; "reverseBarColor": { "alias": "reverseBarColor"; "required": false; }; "defaultValue": { "alias": "defaultValue"; "required": false; }; "noMargin": { "alias": "noMargin"; "required": false; }; "options": { "alias": "options"; "required": false; }; "iconHtml": { "alias": "iconHtml"; "required": false; }; "invalidPatternMessage": { "alias": "invalidPatternMessage"; "required": false; }; "dateFormat": { "alias": "dateFormat"; "required": false; }; "currencySymbol": { "alias": "currencySymbol"; "required": false; }; "hideCents": { "alias": "hideCents"; "required": false; }; "isEditable": { "alias": "isEditable"; "required": false; }; "rowEditConfirmationObsv": { "alias": "rowEditConfirmationObsv"; "required": false; }; "errorInlineMode": { "alias": "errorInlineMode"; "required": false; }; "showLabelInRequiredErrorMessage": { "alias": "showLabelInRequiredErrorMessage"; "required": false; }; "decimalPosition": { "alias": "decimalPosition"; "required": false; }; "hyperlinkTarget": { "alias": "hyperlinkTarget"; "required": false; }; "readOnly": { "alias": "readOnly"; "required": false; }; "focus": { "alias": "focus"; "required": false; }; "showRequiredIndicator": { "alias": "showRequiredIndicator"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "radioTranslateLabels": { "alias": "radioTranslateLabels"; "required": false; }; "radioDeselectable": { "alias": "radioDeselectable"; "required": false; }; "radioRippleEffect": { "alias": "radioRippleEffect"; "required": false; }; }, { "rowEdit": "rowEdit"; "focusOut": "focusOut"; "valueChange": "valueChange"; }, never, never, false, never>;
}

declare class LibRadioButtonComponent {
    readonly UNIQUE_RADIO_COMPONENT_KEY: string;
    radioButtonState: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<LibRadioButtonComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<LibRadioButtonComponent, "lib-radio-button", never, { "radioButtonState": { "alias": "radioButtonState"; "required": false; }; }, {}, never, never, false, never>;
}

declare class AsFormArrayPipe implements PipeTransform {
    transform(control: AbstractControl | null | undefined): UntypedFormArray;
    static ɵfac: i0.ɵɵFactoryDeclaration<AsFormArrayPipe, never>;
    static ɵpipe: i0.ɵɵPipeDeclaration<AsFormArrayPipe, "asFormArray", false>;
}

declare class AsFormControlPipe implements PipeTransform {
    transform(control: AbstractControl | null | undefined): FormControl | UntypedFormControl;
    static ɵfac: i0.ɵɵFactoryDeclaration<AsFormControlPipe, never>;
    static ɵpipe: i0.ɵɵPipeDeclaration<AsFormControlPipe, "asFormControl", false>;
}

declare class CountNonEmptyFieldsPipe implements PipeTransform {
    transform(records: Record<string, string | null>): number;
    static ɵfac: i0.ɵɵFactoryDeclaration<CountNonEmptyFieldsPipe, never>;
    static ɵpipe: i0.ɵɵPipeDeclaration<CountNonEmptyFieldsPipe, "countNonEmptyFields", false>;
}

declare class DateLocalizationPipe implements PipeTransform {
    transform(value: string | Date, dateFormat: string): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<DateLocalizationPipe, never>;
    static ɵpipe: i0.ɵɵPipeDeclaration<DateLocalizationPipe, "dateLocalization", false>;
}

declare class FallbackTranslatePipe implements PipeTransform {
    private translate;
    constructor(translate: TranslateService);
    transform(key: string, fallback: string): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<FallbackTranslatePipe, never>;
    static ɵpipe: i0.ɵɵPipeDeclaration<FallbackTranslatePipe, "fallbackTranslate", false>;
    static ɵprov: i0.ɵɵInjectableDeclaration<FallbackTranslatePipe>;
}

declare class FieldTypePipe implements PipeTransform {
    transform(controlType: string | undefined): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<FieldTypePipe, never>;
    static ɵpipe: i0.ɵɵPipeDeclaration<FieldTypePipe, "fieldType", false>;
}

declare class GetDisplayValuePipe implements PipeTransform {
    private dateLocalizationPipe;
    private currencyPipe;
    constructor(dateLocalizationPipe: DateLocalizationPipe, currencyPipe: CurrencyPipe);
    transform(data: any, column: IGridColumn, dateFormat: string, corporateCurrency?: string): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<GetDisplayValuePipe, never>;
    static ɵpipe: i0.ɵɵPipeDeclaration<GetDisplayValuePipe, "getDisplayValue", false>;
}

declare class FilterOperator<T> {
    label: string;
    value: T;
    identifier?: any;
    identifier2?: any;
    backendQueryUrl?: string;
    constructor(label: string, value: T, identifier?: any, identifier2?: any, backendQueryUrl?: string);
}

type FilterValueType$1 = FilterOperator<any>[][][][];
declare class GetFilterValuesPipe implements PipeTransform {
    transform(values: FilterValueType$1, fieldId: number | undefined, operatorId: number | undefined, index: number): FilterOperator<any>[];
    static ɵfac: i0.ɵɵFactoryDeclaration<GetFilterValuesPipe, never>;
    static ɵpipe: i0.ɵɵPipeDeclaration<GetFilterValuesPipe, "getFilterValues", false>;
}

declare class GetMultiSelectDisplayTextPipe implements PipeTransform {
    transform(formValue: any[], options: SelectOption<any>[]): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<GetMultiSelectDisplayTextPipe, never>;
    static ɵpipe: i0.ɵɵPipeDeclaration<GetMultiSelectDisplayTextPipe, "getMultiSelectDisplayText", false>;
}

declare class InitialsPipe implements PipeTransform {
    transform(fullName: string, numChars?: number): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<InitialsPipe, never>;
    static ɵpipe: i0.ɵɵPipeDeclaration<InitialsPipe, "initials", false>;
}

declare class RoundPipe implements PipeTransform {
    transform(value: number): number;
    static ɵfac: i0.ɵɵFactoryDeclaration<RoundPipe, never>;
    static ɵpipe: i0.ɵɵPipeDeclaration<RoundPipe, "round", false>;
}

declare class UpdateLLMPreferencePipe implements PipeTransform {
    transform(values: SelectOption<string>[], llmPreferenceLoading: string[]): SelectOption<string>[];
    static ɵfac: i0.ɵɵFactoryDeclaration<UpdateLLMPreferencePipe, never>;
    static ɵpipe: i0.ɵɵPipeDeclaration<UpdateLLMPreferencePipe, "updateLLMPreference", false>;
}

declare class PipeModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<PipeModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<PipeModule, [typeof AsFormArrayPipe, typeof AsFormControlPipe, typeof CountNonEmptyFieldsPipe, typeof DateLocalizationPipe, typeof FallbackTranslatePipe, typeof FieldTypePipe, typeof GetDisplayValuePipe, typeof GetFilterValuesPipe, typeof GetMultiSelectDisplayTextPipe, typeof InitialsPipe, typeof RoundPipe, typeof UpdateLLMPreferencePipe], [typeof i2.CommonModule], [typeof AsFormArrayPipe, typeof AsFormControlPipe, typeof CountNonEmptyFieldsPipe, typeof DateLocalizationPipe, typeof FallbackTranslatePipe, typeof FieldTypePipe, typeof GetDisplayValuePipe, typeof GetFilterValuesPipe, typeof GetMultiSelectDisplayTextPipe, typeof InitialsPipe, typeof RoundPipe, typeof UpdateLLMPreferencePipe]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<PipeModule>;
}

interface ProcessedOption {
    original: unknown;
    value: string;
    label: string;
}
declare class InputFieldSelectComponent implements ControlValueAccessor, OnChanges {
    private readonly hostRef;
    multiple: boolean;
    label: string;
    placeholder: string;
    optionLabel: string;
    optionValue: string;
    options: unknown[];
    optionsTemplates: TemplateRef<unknown>[];
    filterBy: string;
    enableFilter: boolean;
    readonly: boolean;
    disabled: boolean;
    showClear: boolean;
    editable: boolean;
    withTemplate: boolean;
    enableTranslation: boolean;
    valueChange: EventEmitter<string>;
    processedOptions: ProcessedOption[];
    onChange: (value: string) => void;
    focused: boolean;
    value: string;
    control: FormControl;
    dropdownOpen: boolean;
    selectedOptionLabel: string;
    activeOptionIndex: number;
    readonly triggerId: string;
    readonly panelId: string;
    private readonly optionIdPrefix;
    private onTouched;
    constructor(hostRef: ElementRef<HTMLElement>);
    ngOnChanges(changes: SimpleChanges): void;
    private processOptions;
    private getOptionValue;
    private getOptionLabel;
    writeValue(value: string | null | undefined): void;
    registerOnChange(fn: (value: string) => void): void;
    registerOnTouched(fn: () => void): void;
    setDisabledState?(isDisabled: boolean): void;
    onBlurField(): void;
    onFocusField(): void;
    toggleDropdown(): void;
    /**
     * Handles keyboard navigation for the select dropdown.
     * Supports ArrowDown, ArrowUp, Enter, Space, and Escape keys.
     * @param event - The keyboard event to handle
     */
    handleKeydown(event: KeyboardEvent): void;
    /**
     * Selects an option from the dropdown and updates the component value.
     * @param option - The processed option to select
     */
    selectOption(option: ProcessedOption): void;
    onTriggerBlur(event: FocusEvent): void;
    handleDocumentClick(event: MouseEvent): void;
    private openDropdown;
    private closeDropdown;
    private moveActiveOption;
    private selectActiveOption;
    private updateSelectedOptionLabel;
    private syncActiveOptionIndex;
    private getSelectedOptionIndex;
    getOptionDomId(index: number): string | null;
    static ɵfac: i0.ɵɵFactoryDeclaration<InputFieldSelectComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<InputFieldSelectComponent, "lib-input-field-select", never, { "multiple": { "alias": "multiple"; "required": false; }; "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "optionLabel": { "alias": "optionLabel"; "required": false; }; "optionValue": { "alias": "optionValue"; "required": false; }; "options": { "alias": "options"; "required": false; }; "optionsTemplates": { "alias": "optionsTemplates"; "required": false; }; "filterBy": { "alias": "filterBy"; "required": false; }; "enableFilter": { "alias": "enableFilter"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "showClear": { "alias": "showClear"; "required": false; }; "editable": { "alias": "editable"; "required": false; }; "withTemplate": { "alias": "withTemplate"; "required": false; }; "enableTranslation": { "alias": "enableTranslation"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, false, never>;
}

declare class InputFieldSelectModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<InputFieldSelectModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<InputFieldSelectModule, [typeof InputFieldSelectComponent], [typeof i2.CommonModule, typeof i4.ReactiveFormsModule, typeof i4$5.SelectModule, typeof i4$1.TranslateModule, typeof i4$1.TranslateModule], [typeof InputFieldSelectComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<InputFieldSelectModule>;
}

type DatePickerTypeView = 'date' | 'month' | 'year';
declare class InputDateFieldComponent implements ControlValueAccessor {
    label: string;
    defaultDate: Date | null;
    maxDate: Date | null;
    minDate: Date | null;
    showTime: boolean;
    hieActions: boolean;
    readonly: boolean;
    defaultDayHighlight: boolean;
    showIcon: boolean;
    timeOnly: boolean;
    view: DatePickerTypeView;
    disabled: boolean;
    dateFormat: string;
    placeholder: string;
    appendTo: string | TemplateRef<undefined> | ElementRef | null;
    stepMinute: number;
    mask: string;
    styleClass: string;
    timeFormat: string;
    focusEvent: EventEmitter<boolean>;
    datePicker: DatePicker;
    value: string | Date | null;
    focused: boolean;
    readonly datePickerControl: FormControl<string | Date | null>;
    private readonly destroyRef;
    private readonly cdr;
    private onTouched;
    private onChange;
    private suppressNextWrite;
    constructor();
    writeValue(value: string | Date | null): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState(isDisabled: boolean): void;
    change(event: Date): void;
    onModelChange(value: string | Date | null): void;
    onDateSelect(date: Date): void;
    onBlurDate(): void;
    onFocusDate(): void;
    openDatePicker(): void;
    selectPicker(): void;
    clearPicker(): void;
    private highlightDefaultDay;
    static ɵfac: i0.ɵɵFactoryDeclaration<InputDateFieldComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<InputDateFieldComponent, "lib-input-date-field", never, { "label": { "alias": "label"; "required": false; }; "defaultDate": { "alias": "defaultDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "showTime": { "alias": "showTime"; "required": false; }; "hieActions": { "alias": "hieActions"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "defaultDayHighlight": { "alias": "defaultDayHighlight"; "required": false; }; "showIcon": { "alias": "showIcon"; "required": false; }; "timeOnly": { "alias": "timeOnly"; "required": false; }; "view": { "alias": "view"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "dateFormat": { "alias": "dateFormat"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "appendTo": { "alias": "appendTo"; "required": false; }; "stepMinute": { "alias": "stepMinute"; "required": false; }; "mask": { "alias": "mask"; "required": false; }; "styleClass": { "alias": "styleClass"; "required": false; }; "timeFormat": { "alias": "timeFormat"; "required": false; }; }, { "focusEvent": "focusEvent"; }, never, never, false, never>;
}

declare class InputDateFieldInlineComponent extends InputDateFieldComponent {
    showActions: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<InputDateFieldInlineComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<InputDateFieldInlineComponent, "lib-input-date-field-inline", never, { "showActions": { "alias": "showActions"; "required": false; }; }, {}, never, never, false, never>;
}

declare class DateMaskDirective implements AfterViewInit {
    private primeDatePicker;
    view: string;
    mask: string;
    placeholder: string;
    constructor(primeDatePicker: DatePicker);
    ngAfterViewInit(): void;
    private setDateMask;
    static ɵfac: i0.ɵɵFactoryDeclaration<DateMaskDirective, [{ optional: true; }]>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<DateMaskDirective, "p-datePicker[libDateMask]", never, { "view": { "alias": "view"; "required": false; }; "mask": { "alias": "mask"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; }, {}, never, never, false, never>;
}

declare class InputDateFieldModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<InputDateFieldModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<InputDateFieldModule, [typeof InputDateFieldComponent, typeof InputDateFieldInlineComponent, typeof DateMaskDirective], [typeof i2.CommonModule, typeof i4.ReactiveFormsModule, typeof i4.FormsModule, typeof i6$2.DatePickerModule, typeof i13.MatIconModule, typeof i7.MatButtonModule, typeof i13$1.MatRippleModule, typeof ButtonsModule, typeof i3.IonicModule], [typeof InputDateFieldComponent, typeof InputDateFieldInlineComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<InputDateFieldModule>;
}

/** Payload for Ionic `ion-range` `ionChange` / `ionInput` events. */
interface IIonRangeChangeDetail {
    value: {
        lower: number;
        upper: number;
    } | number;
}

declare class RangeSelectorComponent implements ControlValueAccessor {
    private cdr;
    minValue: number;
    maxValue: number;
    stepValue: number;
    min: number;
    max: number;
    step: number;
    value: number;
    dualKnobs: boolean;
    pinValue: boolean;
    reverseBarColor: boolean;
    enablePinFormatter: boolean;
    selectedRange: {
        lower: number;
        upper: number;
    } | number;
    private onChange;
    private onTouched;
    constructor(cdr: ChangeDetectorRef);
    writeValue(value: {
        lower: number;
        upper: number;
    } | number): void;
    registerOnChange(fn: (value: {
        lower: number;
        upper: number;
    } | number) => void): void;
    registerOnTouched(fn: () => void): void;
    setDisabledState(isDisabled: boolean): void;
    rangeChanged(event: CustomEvent<IIonRangeChangeDetail>): void;
    pinFormatterFn(value: number): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<RangeSelectorComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<RangeSelectorComponent, "lib-range-selector", never, { "minValue": { "alias": "minValue"; "required": false; }; "maxValue": { "alias": "maxValue"; "required": false; }; "stepValue": { "alias": "stepValue"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "step": { "alias": "step"; "required": false; }; "value": { "alias": "value"; "required": false; }; "dualKnobs": { "alias": "dualKnobs"; "required": false; }; "pinValue": { "alias": "pinValue"; "required": false; }; "reverseBarColor": { "alias": "reverseBarColor"; "required": false; }; "enablePinFormatter": { "alias": "enablePinFormatter"; "required": false; }; }, {}, never, never, false, never>;
}

declare class RangeSelectorModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<RangeSelectorModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<RangeSelectorModule, [typeof RangeSelectorComponent], [typeof i2.CommonModule, typeof i3.IonicModule, typeof i4.FormsModule, typeof i4.ReactiveFormsModule], [typeof RangeSelectorComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<RangeSelectorModule>;
}

declare class FormFieldModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<FormFieldModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<FormFieldModule, [typeof FormFieldComponent, typeof LibRadioButtonComponent], [typeof i2.CommonModule, typeof PipeModule, typeof i5$1.MatDateFnsModule, typeof i6$3.MatDatepickerModule, typeof i7$3.MatFormFieldModule, typeof i6.MatInputModule, typeof i9.MatRadioModule, typeof i10$1.MatSelectModule, typeof i4.ReactiveFormsModule, typeof SearchBarModule, typeof TooltipModule, typeof ToggleModule, typeof DashedCheckboxModule, typeof InputFieldModule, typeof InputFieldSelectModule, typeof InputDateFieldModule, typeof DirectiveModule, typeof RangeSelectorModule, typeof i4$1.TranslateModule, typeof i3.IonicModule, typeof ButtonsModule], [typeof FormFieldComponent, typeof LibRadioButtonComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<FormFieldModule>;
}

declare enum StatusTypes {
    Info = "info",
    Warning = "warning",
    Error = "error",
    Success = "success"
}

declare class StatusBannerComponent {
    show: boolean;
    showIcon: boolean;
    type: StatusTypes;
    actionLink: string;
    actionLinkText: string;
    message: string;
    title: string;
    stayActive: boolean;
    showClose: boolean;
    onCloseBanner(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<StatusBannerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<StatusBannerComponent, "lib-status-banner", never, { "show": { "alias": "show"; "required": false; }; "showIcon": { "alias": "showIcon"; "required": false; }; "type": { "alias": "type"; "required": false; }; "actionLink": { "alias": "actionLink"; "required": false; }; "actionLinkText": { "alias": "actionLinkText"; "required": false; }; "message": { "alias": "message"; "required": false; }; "title": { "alias": "title"; "required": false; }; "stayActive": { "alias": "stayActive"; "required": false; }; "showClose": { "alias": "showClose"; "required": false; }; }, {}, never, never, false, never>;
}

declare enum StatusPosition {
    topLeft = "top-left",
    topRight = "top-right",
    bottomLeft = "bottom-left",
    bottomRight = "bottom-right"
}

interface IStatusMessage {
    type: StatusTypes;
    header: string;
    message: string;
    actionLink?: string;
    actionLinkText?: string;
    delay?: number;
    stayActive?: boolean;
    showIcon?: boolean;
    notificationTemplate?: ElementRef;
}

declare class ToastService {
    private eventSubject;
    private displaySubject;
    set setToast(data: IStatusMessage);
    set toastEvent(event: string);
    get observeToast(): Observable<IStatusMessage>;
    get observeEvents(): Observable<string>;
    showErrorToast(header: string, message?: string): void;
    showSuccessToast(header: string, message?: string): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ToastService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ToastService>;
}

declare class ToastComponent implements OnInit, OnDestroy {
    private toastService;
    message: IStatusMessage | null;
    private toastHideSubject;
    private defaultDelay;
    private timeout;
    private componentDestroyed$;
    position: StatusPosition;
    constructor(toastService: ToastService);
    getTemplateContent(): string;
    ngOnInit(): void;
    onCloseToast(): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ToastComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ToastComponent, "lib-toast", never, { "position": { "alias": "position"; "required": false; }; }, {}, never, never, false, never>;
}

declare class StatusIconComponent {
    type: StatusTypes;
    static ɵfac: i0.ɵɵFactoryDeclaration<StatusIconComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<StatusIconComponent, "lib-status-icon", never, { "type": { "alias": "type"; "required": true; }; }, {}, never, never, false, never>;
}

declare class NotificationsModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<NotificationsModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<NotificationsModule, [typeof StatusBannerComponent, typeof ToastComponent, typeof StatusIconComponent], [typeof i2.CommonModule], [typeof StatusBannerComponent, typeof ToastComponent, typeof StatusIconComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<NotificationsModule>;
}

declare class ColorRangeComponent implements AfterViewInit, OnChanges {
    rangeColorInput: ElementRef;
    colorSelected: EventEmitter<{
        current: string;
        value: number;
    }>;
    sliderValue: number;
    currentColor: string;
    readonly hueControl: FormControl<number>;
    ngOnChanges(changes: SimpleChanges): void;
    ngAfterViewInit(): void;
    updateColor(e: Event): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ColorRangeComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ColorRangeComponent, "lib-color-range", never, { "sliderValue": { "alias": "sliderValue"; "required": false; }; "currentColor": { "alias": "currentColor"; "required": false; }; }, { "colorSelected": "colorSelected"; }, never, never, true, never>;
}

declare class FeedbackModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<FeedbackModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<FeedbackModule, [typeof FeedbackModalComponent, typeof FeedbackScreenshotComponent, typeof FeedbackSendComponent, typeof FeedbackSuccessComponent], [typeof i2.CommonModule, typeof i8.HttpClientModule, typeof i3.IonicModule, typeof i4$1.TranslateModule, typeof LibModalModule, typeof BaseCardModule, typeof ButtonsModule, typeof MultiselectModule, typeof i13.MatIconModule, typeof i4.FormsModule, typeof ToggleModule, typeof FormFieldModule, typeof InputFieldModule, typeof ImageCardModule, typeof NotificationsModule, typeof i2.NgOptimizedImage, typeof ColorRangeComponent, typeof PipeModule], [typeof FeedbackScreenshotComponent, typeof FeedbackSendComponent, typeof FeedbackSuccessComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<FeedbackModule>;
}

interface IFeedbackData {
    comments: string;
    screenshots: string[];
    topic?: string;
}

interface IDeviceMotionType {
    requestPermission: () => Observable<void>;
}

interface IFeedbackFormBuild {
    screenshots: FormControl<string[]>;
    comments: FormControl<string>;
    shakeEnabled: FormControl<boolean>;
}

interface IFeedbackPopupConfig<T = unknown> {
    isOpen: boolean;
    title: string;
    customClass?: string;
    component?: Type<T>;
}

interface IFormError {
    name: string;
    error: any;
}

interface IModalCloseResult {
    shakeEnabled: boolean;
    confirm: boolean;
}

interface IUploadResult {
    success: boolean;
    url?: string;
}

declare class AccelerometerService {
    private platform;
    private readonly SHAKE_THRESHOLD;
    private accelHandler;
    private lastX;
    private lastY;
    private lastZ;
    private moveCounter;
    private isInitialized;
    private _onShake$;
    onShake$: Observable<boolean>;
    constructor(platform: Platform);
    /**
     * method to emit events from the subject
     */
    emitShakeEvent(value: boolean): void;
    /**
     * method to complete the subject when it's not needed
     */
    completeShake(): void;
    /**
     * Requests permissions to detect device motion events
     */
    requestPermissionAccelerometer(): Observable<void>;
    /**
     * Initializes the accelerometer plugin
     */
    initAccelerometer(): Observable<void>;
    /**
     * Stop the acceleration listener
     */
    stopAcceleration(): Observable<void>;
    private resetState;
    /**
     * Detects device shake and fires onShake event
     * @param event
     * @private
     */
    private detectShake;
    static ɵfac: i0.ɵɵFactoryDeclaration<AccelerometerService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<AccelerometerService>;
}

declare enum ModeStrokes {
    DRAW = "draw",
    ERASE = "erase"
}

interface IStroke {
    points: {
        x: number;
        y: number;
    }[];
    color: string;
    lineWidth: number;
    mode: ModeStrokes;
}

declare class FeedbackService {
    private _screenshotOriginal$;
    screenshotOriginal$: rxjs.Observable<string | null>;
    private _screenshotEdit$;
    screenshotEdit$: rxjs.Observable<string | null>;
    private _markupScreenshot$;
    markUpScreenshot$: rxjs.Observable<boolean>;
    strokes: IStroke[];
    readonly onScreenshotCanceled$: Subject<boolean>;
    readonly onFeedbackSubmit: Subject<IFeedbackData>;
    onModalClose: Subject<IModalCloseResult>;
    private zone;
    /**
     * Announce that the user wants to markup the last not-edited screenshot
     */
    changeMarkUpStatus(status: boolean): void;
    /**
     * Take a screenshot of a DOM element
     */
    takeOriginalScreenshot(): Promise<void>;
    /**
     * Gets the screenshot edited by the user
     * @param dataURI
     */
    takeEditScreenshot(dataURI: string): void;
    setShakeEnabled(enabled: boolean): void;
    shakeEnabled(): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<FeedbackService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<FeedbackService>;
}

declare enum FooterTypes {
    SHARED = "shared",
    TABS = "tabs"
}

declare class FooterSharedComponent {
    loading$: Observable<boolean>;
    canContinue: boolean;
    continueButtonText: string;
    secondaryButtonText: string;
    showBackButton: boolean;
    continueButtonParameter$: Observable<string>;
    secondaryButtonClick: EventEmitter<void>;
    continueButtonClick: EventEmitter<void>;
    FooterType: typeof FooterTypes;
    onContinueClick(): void;
    onSecondaryButtonClick(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<FooterSharedComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FooterSharedComponent, "lib-footer-shared", never, { "loading$": { "alias": "loading$"; "required": false; }; "canContinue": { "alias": "canContinue"; "required": false; }; "continueButtonText": { "alias": "continueButtonText"; "required": false; }; "secondaryButtonText": { "alias": "secondaryButtonText"; "required": false; }; "showBackButton": { "alias": "showBackButton"; "required": false; }; "continueButtonParameter$": { "alias": "continueButtonParameter$"; "required": false; }; }, { "secondaryButtonClick": "secondaryButtonClick"; "continueButtonClick": "continueButtonClick"; }, never, never, true, never>;
}

interface IFooterTabModel {
    name: string;
    title: string;
    icon: string;
    activeIcon: string;
    route: string;
    routeChildren?: string[];
}

declare class LibFooterTabsComponent implements AfterViewInit, OnDestroy {
    watchBackdropUpdate$: Observable<boolean>;
    footerTabs: IFooterTabModel[];
    activeTab: string;
    enablePracticeMode: boolean;
    icons: Record<string, string>;
    handleTabClick: EventEmitter<IFooterTabModel>;
    private gestureCtrl;
    private el;
    private cdr;
    private footerGesture;
    FooterType: typeof FooterTypes;
    footerHeight: number;
    private maxFooterHeight;
    private minFooterHeight;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    onTabClick(tab: IFooterTabModel): void;
    private listenToFooterDragging;
    private onDragMove;
    static ɵfac: i0.ɵɵFactoryDeclaration<LibFooterTabsComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<LibFooterTabsComponent, "lib-footer-tabs", never, { "watchBackdropUpdate$": { "alias": "watchBackdropUpdate$"; "required": false; }; "footerTabs": { "alias": "footerTabs"; "required": false; }; "activeTab": { "alias": "activeTab"; "required": false; }; "enablePracticeMode": { "alias": "enablePracticeMode"; "required": false; }; "icons": { "alias": "icons"; "required": false; }; }, { "handleTabClick": "handleTabClick"; }, never, never, true, never>;
}

declare enum FormGenStyle {
    expander = "expander",
    flat = "flat"
}

declare class FormActionConfig {
    action: (...args: any[]) => void;
    constructor(action: (...args: any[]) => void);
}

declare class FormBannerConfig {
    statusType: StatusTypes;
    actionLink?: string | undefined;
    actionLinkText?: string | undefined;
    constructor(statusType: StatusTypes, actionLink?: string | undefined, actionLinkText?: string | undefined);
}

/**
 * Used to configure the functionality of the card expiry form field.
 * Currently no specific configuration needed, but kept for consistency.
 */
declare class FormCardExpiryConfig {
    constructor(config?: Partial<FormCardExpiryConfig>);
}

interface ICardBrand {
    icon: string;
    type: string;
    title?: string;
}
interface ICardDetails {
    month: string;
    year: string;
}

/**
 * Used to configure the functionality of the card number form field.
 */
declare class FormCardNumberConfig {
    cardBrands?: ICardBrand[];
    amExpressMask?: string;
    mask4?: string;
    constructor(config?: Partial<FormCardNumberConfig>);
}

/**
 * Used for configuring the functionality for the radio form field.
 */
declare class FormCheckboxConfig {
    options: SelectOption<any>[];
    constructor(options: SelectOption<any>[]);
}

declare class FormIncrementerConfig {
    constructor();
}

interface InjectableFormField {
    setConfig(config: object): void;
    setFormControl(formFieldControl: UntypedFormControl): void;
}

declare class FormInjectableFormFieldConfig {
    componentType: Type<InjectableFormField>;
    componentConfig: any;
    constructor(componentType: Type<InjectableFormField>, componentConfig: any);
}

/**
 * Variables used for displaying a form group within a form.
 * This includes support for creating the formgroup and adding field controls to that group.
 *
 * Section to place form fields within. If the form fields are inserted using class functions then the fields will be within formgroup.
 */
declare class FormSectionVariables {
    fields: FormFieldVariables[][];
    formGroup: UntypedFormGroup;
    title: string;
    expanded: boolean;
    useSlideToggle: boolean;
    trackId: string;
    isHidden: boolean;
    footerAction: ItemActionHandler | null;
    headerActions: ItemActionHandler[];
    id: string;
    /**
     *
     * @param items - list of field info to be added to the group.
     *
     * Adds all fields into the group and inserts their controls into the form group.
     */
    addFieldInfo(controlAlreadyInForm: boolean, ...items: FormFieldVariables[]): void;
    /**
     *
     * @param item - item to be inserted
     *
     * Finds the matching existing form field and replaces it.
     */
    private replaceOldField;
    /**
     *
     * @param item - item to be attached
     *
     * Adds the new control to the group and adds the field to the list.
     */
    private addNewField;
    /**
     * This method sets a flexBasisPct value on any fields that do not have one manually set.
     * This is necessary in order to produce correct wrapping of form fields so that the
     * form is responsive to changing width.
     *
     * @param groupInfo - FormSectionVariables to calculate flex basis values for
     */
    calculateFlexBasis(): void;
    allFieldsHidden(): boolean;
}

declare class FormMultifieldConfig {
    config: FormSectionVariables;
    handleRowEdit?: (event: {
        rowFormControls: UntypedFormControl[][];
        config: FormSectionVariables;
    }) => void;
    handleValueChanged?: (event: {
        formControl: UntypedFormControl;
        config: FormSectionVariables;
    }) => void;
    newRowText?: string;
    maxLength: number;
    errorMessage?: string | undefined;
    constructor(config: FormSectionVariables);
}

declare class FormMultiselectConfig {
    options: {
        groupName: string;
        options: SelectOption<any>[];
    }[];
    defaultOptions: SelectOption<any>[];
    constructor(options: {
        groupName: string;
        options: SelectOption<any>[];
    }[], defaultOptions: SelectOption<any>[]);
}

declare class FormNumberConfig {
    decimalPosition: number;
    constructor(decimalPosition: number);
}

declare class FormRatingConfig {
    options: SelectOption<any>[];
    constructor(options: SelectOption<any>[]);
}

/**
 * Used to configure the functionality of the enhanced select form field.
 */
declare class FormSelectEnhancedConfig {
    multiple?: boolean;
    optionLabel?: string;
    optionValue?: string;
    options: unknown[];
    optionsTemplates?: TemplateRef<unknown>[];
    filterBy?: string;
    enableFilter?: boolean;
    showClear?: boolean;
    editable?: boolean;
    withTemplate?: boolean;
    enableTranslation?: boolean;
    constructor(config?: Partial<FormSelectEnhancedConfig>);
}

/**
 * Used to configure the functionality of the selectable form field.
 */
declare class FormSelectableConfig {
    options: SelectOption<string>[];
    singleSelectionOnly?: boolean;
    maxSelectionPossible?: number;
    constructor(config?: Partial<FormSelectableConfig>);
}

/**
 * Used to configure the functionality of the tel-input form field.
 */
declare class FormTelInputConfig {
    enablePlaceholder?: boolean;
    maskPhoneNumber?: boolean;
    eagerMask?: boolean;
    customPlaceholder?: string;
    numberFormat?: PhoneNumberFormat;
    cssClass?: string;
    onlyCountries?: Array<string>;
    searchCountryFlag?: boolean;
    searchCountryField?: SearchCountryField[];
    searchCountryPlaceholder?: string;
    maxLength?: number;
    selectFirstCountry?: boolean;
    selectedCountryISO?: CountryISO;
    phoneValidation?: boolean;
    inputId?: string;
    separateDialCode?: boolean;
    showDropDownArrow?: boolean;
    icons?: AuthIcons | null;
    autocomplete?: string;
    constructor(config?: Partial<FormTelInputConfig>);
}

declare class FormTextlistConfig {
    textlist: string[];
    isUrlList: boolean;
    constructor(textlist: string[], isUrlList?: boolean);
}

/**
 * This model class contains strings for a label and tooltip as well as
 * a function that can be executed e.g. when a user clicks a UI element
 * associated with the ItemInfoLine. Additionally, icons can be attached
 * to the ItemInfoLine, optionally with actions.
 */
declare class ItemInfoLine {
    label: string;
    tooltipText: string;
    action: (...args: unknown[]) => unknown;
    iconTray: ItemActionHandler[];
    inlineStyles: object;
    constructor(label: string, tooltipText: string, action: (...args: unknown[]) => unknown, iconTray?: ItemActionHandler[], inlineStyles?: object);
}

declare class ItemSummary<T> {
    header: ItemInfoLine;
    subheaders: ItemInfoLine[];
    details: ItemInfoLine[];
    item: T;
    abbreviation: string;
    icon: SafeHtml | null;
    iconBackgroundColor: string;
    image: SafeUrl | null;
    visualIcon: SafeHtml | null;
    actionHandler: ItemActionHandler | null;
    disabled: boolean;
    constructor(header: ItemInfoLine, subheaders: ItemInfoLine[], details: ItemInfoLine[], item: T);
    /**
     *
     * @param summary - summary to compare with.
     *
     * Determines if the summary matches this one based on the displayed text values.
     */
    equals(summary: ItemSummary<any>): boolean;
    clone(): ItemSummary<T>;
}

declare class TypeaheadResultsGroup {
    summaries: ItemSummary<any>[];
    groupName?: string;
}

/**
 * Used to configure the functionality of the typeahead form field.
 */
declare class FormTypeaheadConfig {
    entity: {
        searchFunction: (value: string) => Observable<any[]>;
        mappingFunction: (entity: any) => Observable<ItemSummary<any>>;
        filterFunction: (entity: any) => boolean;
        sortFunction: (a: ItemSummary<any>, b: ItemSummary<any>) => number;
        resultGroupFunction?: (results: ItemSummary<any>[]) => TypeaheadResultsGroup[];
        entityMetadata?: {
            typeLabel: string;
            iconHtml: SafeHtml;
        };
    }[];
    selectionFunction?: (item: ItemSummary<any>) => void;
    alternateFunction?: (value: string) => any;
    alternateText?: string;
    defaultText?: string;
    defaultSearchString?: string;
    inputChangeFunction?: (value: string) => void;
    errorMessage?: string;
    suggestionText?: string;
    required?: boolean;
    constructor(entity: {
        searchFunction: (value: string) => Observable<any[]>;
        mappingFunction: (entity: any) => Observable<ItemSummary<any>>;
        filterFunction: (entity: any) => boolean;
        sortFunction: (a: ItemSummary<any>, b: ItemSummary<any>) => number;
        resultGroupFunction?: (results: ItemSummary<any>[]) => TypeaheadResultsGroup[];
        entityName?: string;
    }[], selectionFunction?: (item: ItemSummary<any>) => void, alternateFunction?: (value: string) => any, alternateText?: string, defaultText?: string, defaultSearchString?: string, inputChangeFunction?: (value: string) => void, errorMessage?: string, suggestionText?: string, required?: boolean);
}

/**
 * Used to store the variables necessary for displaying a form field.
 *
 * These variables are used to config all the types of components form-generator supports.
 */
declare class FormFieldVariables {
    control: UntypedFormControl;
    controlName: string;
    type: FormFieldType;
    id: number;
    selectOptions: SelectOption<any>[];
    labelIcon?: SafeHtml;
    placeholder?: string;
    isHidden?: boolean;
    isInlineField?: boolean;
    maxLength?: number;
    required?: boolean;
    label?: string;
    patternErrorMessage?: string;
    typeaheadConfig?: FormTypeaheadConfig;
    dateOptions?: object;
    multiselectOptions?: {
        groupName: string;
        options: SelectOption<any>[];
    }[];
    multiselectDefaultOptions?: SelectOption<any>[];
    textlist?: string[];
    textlistConfig?: FormTextlistConfig;
    flexBasisPct?: number;
    flexGrow?: number;
    descriptionText?: string;
    fullLength?: boolean;
    trackId: string;
    multifieldConfig?: FormMultifieldConfig;
    multiselectConfig?: FormMultiselectConfig;
    imageUrl?: SafeUrl;
    actionConfig?: FormActionConfig;
    bannerConfig?: FormBannerConfig;
    message?: string;
    disabled: boolean;
    isEditable?: boolean;
    confirmationObsv?: Observable<any>;
    handleConfirmation?: (event: any) => void;
    injectableConfig?: FormInjectableFormFieldConfig;
    hyperlinkTarget?: string;
    numberConfig?: FormNumberConfig;
    showLabelInRequiredErrorMessage?: boolean;
    readOnly?: boolean;
    ratingConfig?: FormRatingConfig;
    incrementerConfig?: FormIncrementerConfig;
    telInputConfig?: FormTelInputConfig;
    cardNumberConfig?: FormCardNumberConfig;
    cardExpiryConfig?: FormCardExpiryConfig;
    selectEnhancedConfig?: FormSelectEnhancedConfig;
    selectableConfig?: FormSelectableConfig;
}

/**
 * Used for configuring the functionality for the radio form field.
 */
declare class FormRadioConfig {
    options: SelectOption<any>[];
    constructor(options: SelectOption<any>[]);
}

/**
 * Used to configure the functionality of the select form field.
 */
declare class FormSelectConfig {
    options: SelectOption<any>[];
    constructor(options: SelectOption<any>[]);
}

declare class FormTimePickerConfig {
    defaultToCurrentTime: boolean;
    constructor(defaultToCurrentTime: boolean);
}

/**
 * This class is used by the a to easily pass configuration info about form fields.
 * A convenience class, FormFieldStructureBuilder, is provided.
 */
declare class FormFieldStructure {
    inputType: FormFieldType;
    fieldName: string;
    placeholder?: string;
    labelIcon?: SafeHtml;
    label?: string;
    required?: boolean;
    isHidden?: boolean;
    isInlineField?: boolean;
    maxLength?: number;
    validationPattern?: RegExp;
    patternErrorMessage?: string;
    selectConfig?: FormSelectConfig;
    typeaheadConfig?: FormTypeaheadConfig;
    multiselectConfig?: FormMultiselectConfig;
    radioConfig?: FormRadioConfig;
    checkboxConfig?: FormCheckboxConfig;
    textlistConfig?: FormTextlistConfig;
    timePickerConfig?: FormTimePickerConfig;
    multifieldConfig?: FormMultifieldConfig;
    actionConfig?: FormActionConfig;
    controlOptions?: any;
    flexBasisPct?: number;
    flexGrow: number;
    descriptionText?: string;
    fullLength?: boolean;
    message?: string;
    bannerConfig?: FormBannerConfig;
    disabled: boolean;
    isEditable?: boolean;
    confirmationObsv?: Observable<any>;
    handleConfirmation?: (event: any) => void;
    injectableFormFieldConfig?: FormInjectableFormFieldConfig;
    hyperlinkTarget?: string;
    numberConfig?: FormNumberConfig;
    showLabelInRequiredErrorMessage?: boolean;
    readOnly?: boolean;
    ratingConfig?: FormRatingConfig;
    incrementerConfig?: FormIncrementerConfig;
    telInputConfig?: FormTelInputConfig;
    cardNumberConfig?: FormCardNumberConfig;
    cardExpiryConfig?: FormCardExpiryConfig;
    selectEnhancedConfig?: FormSelectEnhancedConfig;
    selectableConfig?: FormSelectableConfig;
    constructor(inputType: FormFieldType, fieldName: string, placeholder?: string, labelIcon?: SafeHtml, label?: string, required?: boolean, isHidden?: boolean, isInlineField?: boolean, maxLength?: number, selectConfig?: FormSelectConfig, typeaheadConfig?: FormTypeaheadConfig, multiselectConfig?: FormMultiselectConfig, radioConfig?: FormRadioConfig, textlistConfig?: FormTextlistConfig, actionConfig?: FormActionConfig, validationPattern?: RegExp, patternErrorMessage?: string, controlOptions?: any, flexBasisPct?: number, flexGrow?: number, descriptionText?: string, fullLength?: boolean, multifieldConfig?: FormMultifieldConfig, message?: string, bannerConfig?: FormBannerConfig, disabled?: boolean, isEditable?: boolean, confirmationObsv?: Observable<any>, handleConfirmation?: (event: any) => void, injectableConfig?: FormInjectableFormFieldConfig, hyperlinkTarget?: string, checkboxConfig?: FormCheckboxConfig, numberConfig?: FormNumberConfig, showLabelInRequiredErrorMessage?: boolean, readOnly?: boolean, ratingConfig?: FormRatingConfig, incrementerConfig?: FormIncrementerConfig, telInputConfig?: FormTelInputConfig, cardNumberConfig?: FormCardNumberConfig, cardExpiryConfig?: FormCardExpiryConfig, selectEnhancedConfig?: FormSelectEnhancedConfig, selectableConfig?: FormSelectableConfig);
    /**
     * Converts this FormFieldStructure to FormFieldVariables, which can be consumed
     * by FormGenerator or MultiField.
     */
    convertStructureToVariables(): FormFieldVariables;
    private initFieldInfo;
    private convertTextlistStructureToVariables;
    private convertSelectStructureToVariables;
    private convertMultiselectStructureToVariables;
    private convertRadioStructureToVariables;
    private convertCheckboxStructureToVariables;
    private convertTypeaheadStructureToVariables;
    private convertMultifieldStructureToVariables;
    private convertActionStructureToVariables;
    private convertBannerStructureToVariables;
    private convertInjectableStructureToVariables;
    private convertRatingStructureToVariables;
    private convertIncrementerStructureToVariables;
    private convertNumberStructureToVariables;
    private convertTelInputStructureToVariables;
    private convertCardNumberStructureToVariables;
    private convertCardExpiryStructureToVariables;
    private convertSelectEnhancedStructureToVariables;
    private convertSelectableStructureToVariables;
}
declare class FormFieldStructureBuilder {
    private inputType;
    private fieldName;
    private placeholder?;
    private labelIcon?;
    private label?;
    private required?;
    private isHidden?;
    private isEditable?;
    private isInlineField?;
    private maxLength?;
    private selectConfig?;
    private typeaheadConfig?;
    private multiselectConfig?;
    private radioConfig?;
    private textlistConfig?;
    private multifieldConfig?;
    private actionConfig?;
    private bannerConfig?;
    private validationPattern?;
    private patternErrorMessage?;
    private controlOptions?;
    private flexBasisPct?;
    private flexGrow;
    private descriptionText?;
    private fullLength?;
    private message?;
    private disabled;
    confirmationObsv?: Observable<any>;
    handleConfirmation?: (event: any) => void;
    private injectableConfig?;
    private hyperlinkTarget?;
    private checkboxConfig?;
    private numberConfig?;
    private showLabelInRequiredErrorMessage?;
    private readOnly;
    private ratingConfig?;
    private incrementerConfig?;
    private telInputConfig?;
    private cardNumberConfig?;
    private cardExpiryConfig?;
    private selectEnhancedConfig?;
    private selectableConfig?;
    constructor(inputType: FormFieldType, fieldName: string);
    setPlaceholder(placeholder: string): FormFieldStructureBuilder;
    setLabelIcon(labelIcon: SafeHtml): FormFieldStructureBuilder;
    setLabel(label: string): FormFieldStructureBuilder;
    setIsHidden(isHidden: boolean): FormFieldStructureBuilder;
    setRequired(required: boolean): FormFieldStructureBuilder;
    setMaxLength(maxLength: number): FormFieldStructureBuilder;
    setSelectConfig(selectConfig: FormSelectConfig): FormFieldStructureBuilder;
    setTypeaheadConfig(typeaheadConfig: FormTypeaheadConfig): FormFieldStructureBuilder;
    setMultiselectConfig(multiselectConfig: FormMultiselectConfig): FormFieldStructureBuilder;
    setRadioConfig(radioConfig: FormRadioConfig): FormFieldStructureBuilder;
    setIncrementerConfig(incrementerConfig: FormIncrementerConfig): FormFieldStructureBuilder;
    setTextlistConfig(textlistConfig: FormTextlistConfig): FormFieldStructureBuilder;
    setMultifieldConfig(multifieldConfig: FormMultifieldConfig): FormFieldStructureBuilder;
    setIsInlineField(isInlineField: boolean): FormFieldStructureBuilder;
    setControlOptions(controlOptions: any): FormFieldStructureBuilder;
    setValidationPattern(validationPattern: RegExp): FormFieldStructureBuilder;
    setPatternErrorMessage(patternErrorMessage: string): FormFieldStructureBuilder;
    setFlexGrow(flexGrow: number): FormFieldStructureBuilder;
    setFlexBasis(flexBasisPct: number): FormFieldStructureBuilder;
    setDescriptionText(descriptionText: string): FormFieldStructureBuilder;
    setFullLength(fullLength: boolean): FormFieldStructureBuilder;
    setActionConfig(actionConfig: FormActionConfig): FormFieldStructureBuilder;
    setBannerConfig(bannerConfig: FormBannerConfig): FormFieldStructureBuilder;
    setMessage(message: string): FormFieldStructureBuilder;
    setDisabled(disabled: boolean): FormFieldStructureBuilder;
    setConfirmationObsv(confirmationObsv: Observable<any>): this;
    setHandleConfirmation(handleConfirmation: (event: any) => void): this;
    setInjectableConfig(injectableConfig: FormInjectableFormFieldConfig): this;
    setHyperlinkTarget(hyperlinkTarget: string): FormFieldStructureBuilder;
    setCheckboxConfig(checkboxConfig: FormCheckboxConfig): FormFieldStructureBuilder;
    setNumberConfig(numberConfig: FormNumberConfig): FormFieldStructureBuilder;
    setShowLabelInRequiredErrorMessage(showLabel: boolean): FormFieldStructureBuilder;
    setReadOnly(readOnly: boolean): FormFieldStructureBuilder;
    setRatingConfig(ratingConfig: FormRatingConfig): FormFieldStructureBuilder;
    buildFormStructure(): FormFieldStructure;
    setTelInputConfig(telInputConfig: FormTelInputConfig): FormFieldStructureBuilder;
    setCardNumberConfig(cardNumberConfig: FormCardNumberConfig): FormFieldStructureBuilder;
    setCardExpiryConfig(cardExpiryConfig: FormCardExpiryConfig): FormFieldStructureBuilder;
    setSelectEnhancedConfig(selectEnhancedConfig: FormSelectEnhancedConfig): FormFieldStructureBuilder;
    setSelectableConfig(selectableConfig: FormSelectableConfig): FormFieldStructureBuilder;
}

declare class FormGroupExpanderChange {
    isOpened: boolean;
    groupTitle: string;
    constructor(isOpened: boolean, groupTitle: string);
}

/**
 * Used to structure groups within forms. All group level configuration will go here.
 */
declare class FormSectionStructure {
    fieldStructures: FormFieldStructure[];
    groupName: string;
    expanded: boolean;
    footerAction: ItemActionHandler | null;
    useSlideToggle: boolean;
    headerActions: ItemActionHandler[];
    id: string;
    constructor(fieldStructures: FormFieldStructure[], groupName: string, expanded?: boolean, footerAction?: ItemActionHandler | null, useSlideToggle?: boolean, headerActions?: ItemActionHandler[], id?: string);
    convertStructureToVariables(): FormSectionVariables;
}
declare class FormSectionStructureBuilder {
    private structure;
    constructor(groupName: string, ...formFieldStructures: FormFieldStructure[]);
    buildStructure(): FormSectionStructure;
    setExpanded(expanded: boolean): FormSectionStructureBuilder;
    setFooterAction(footerAction: ItemActionHandler): FormSectionStructureBuilder;
    setUseSlideToggle(useSlideToggle: boolean): FormSectionStructureBuilder;
    setHeaderActions(headerActions?: ItemActionHandler[]): FormSectionStructureBuilder;
    setId(id: string): FormSectionStructureBuilder;
}

/**
 * Structure for form with a list of child group structures. All overall form configurations will go here.
 */
declare class FormStructure {
    groupStructures: FormSectionStructure[];
    formStyle: FormGenStyle;
    constructor(groupStructures: FormSectionStructure[], formStyle?: FormGenStyle);
    /**
     * @param groupName - The name of the FormSectionStructure to search within
     * @param fieldName - The name of the FormFieldStructure
     *
     * @return - The FormFieldStructure with the given name in the given FormSectionStructure
     */
    getFormFieldStructure(groupName: string, fieldName: string): FormFieldStructure | null;
}

/**
 * All the variables to display and validate a form.
 */
declare class FormVariables {
    groups: FormSectionVariables[];
    formGroup: UntypedFormGroup;
    formStyle: FormGenStyle;
    /**
     *
     * @param groupInfo - Variables needed to display child group.
     * The new form group will be added to the current form group.
     *
     * Used to insert group into a form
     */
    addGroupInfo(groupInfo: FormSectionVariables): void;
}

declare class FormGeneratorComponent implements OnDestroy, AfterViewInit {
    private changeDetectorRef;
    FormFieldType: typeof FormFieldType;
    FormGenStyle: typeof FormGenStyle;
    formLoaded: boolean;
    formInfo: FormVariables;
    set formStructure(structure: FormStructure);
    set fieldChanges(obsv: Observable<{
        groupName: string;
        structure: FormFieldStructure;
    }[]>);
    set groupChanges(obsv: Observable<FormSectionStructure[]>);
    set formStyle(style: FormGenStyle);
    dateFormat: string;
    currencySymbol: string;
    hideCents: boolean;
    useTooltips: boolean;
    private fieldChangeObsvSwitched;
    private groupChangeObsvSwitched;
    private componentDestroyed$;
    formGroupUpdate: EventEmitter<UntypedFormGroup>;
    formGroupExpanderChanged: EventEmitter<FormGroupExpanderChange>;
    constructor(changeDetectorRef: ChangeDetectorRef);
    ngOnDestroy(): void;
    ngAfterViewInit(): void;
    /**
     *
     * @param structure - Form structure to construct form from
     *
     * A method to take a structure and convert it to the appropriate variables for the UI.
     */
    private loadStructureInfo;
    /**
     *
     * @param groupName - name of group with field - NOTE: unless it was specifically
     * set, groupId will be the same as groupName
     * @param structure - new strucutre to implement
     *
     *
     */
    private updateFieldInfo;
    private updateGroupInfo;
    handleGroupClosed(groupInfo: FormSectionVariables): void;
    handleGroupOpened(groupInfo: FormSectionVariables): void;
    trackGroup(index: number, group: FormSectionVariables): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<FormGeneratorComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FormGeneratorComponent, "lib-form-generator", never, { "formStructure": { "alias": "formStructure"; "required": false; }; "fieldChanges": { "alias": "fieldChanges"; "required": false; }; "groupChanges": { "alias": "groupChanges"; "required": false; }; "formStyle": { "alias": "formStyle"; "required": false; }; "dateFormat": { "alias": "dateFormat"; "required": false; }; "currencySymbol": { "alias": "currencySymbol"; "required": false; }; "hideCents": { "alias": "hideCents"; "required": false; }; "useTooltips": { "alias": "useTooltips"; "required": false; }; }, { "formGroupUpdate": "formGroupUpdate"; "formGroupExpanderChanged": "formGroupExpanderChanged"; }, never, never, false, never>;
}

interface ImageUploadData {
    image: string;
    fileName?: string;
    fileSize?: number;
    fileType?: string;
}

declare class FormGroupComponent {
    StatusTypes: typeof StatusTypes;
    FormFieldType: typeof FormFieldType;
    FormGenStyle: typeof FormGenStyle;
    DirectionPreference: typeof TooltipDirectionPreference;
    PhoneNumberFormat: typeof PhoneNumberFormat;
    CountryISO: typeof CountryISO;
    groupInfo: FormSectionVariables;
    dateFormat: string;
    currencySymbol: string;
    hideCents: boolean;
    useTooltips: boolean;
    formStyle: FormGenStyle;
    handleTypeaheadSelected(fieldInfo: FormFieldVariables, selected: ItemSummary<any>): void;
    handleTypeaheadDeselected(fieldInfo: FormFieldVariables): void;
    handleTypeaheadInputChange(fieldInfo: FormFieldVariables, value: string): void;
    handleImageUploaded(fieldInfo: FormFieldVariables, data: ImageUploadData): void;
    handleImageDeselected(fieldInfo: FormFieldVariables): void;
    handleMultiselectChange(fieldInfo: FormFieldVariables, data: SelectOption<any>[]): void;
    handleFooterClicked(): void;
    handleListChange(fieldInfo: FormFieldVariables, list: string[]): void;
    trackField(index: number, field: FormFieldVariables): string;
    multifieldDescriptionTextList(mainDescriptionText: string | undefined, multifieldConfig: FormMultifieldConfig | undefined): string[];
    getMappedEntityFunctions(entityFunctions: any): any;
    handleSelectEnhancedChange(fieldInfo: FormFieldVariables, value: string): void;
    handleSelectableMaxSelectionsReached(fieldInfo: FormFieldVariables, reached: boolean): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<FormGroupComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FormGroupComponent, "lib-form-group", never, { "groupInfo": { "alias": "groupInfo"; "required": false; }; "dateFormat": { "alias": "dateFormat"; "required": false; }; "currencySymbol": { "alias": "currencySymbol"; "required": false; }; "hideCents": { "alias": "hideCents"; "required": false; }; "useTooltips": { "alias": "useTooltips"; "required": false; }; "formStyle": { "alias": "formStyle"; "required": false; }; }, {}, never, never, false, never>;
}

declare class InjectableFormFieldWrapperComponent implements OnInit {
    private changeDetectorRef;
    formFieldControl: UntypedFormControl;
    componentType: Type<InjectableFormField>;
    componentConfig: any;
    componentContainer: ViewContainerRef;
    private componentRef;
    constructor(changeDetectorRef: ChangeDetectorRef);
    ngOnInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<InjectableFormFieldWrapperComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<InjectableFormFieldWrapperComponent, "lib-injectable-form-field-wrapper", never, { "formFieldControl": { "alias": "formFieldControl"; "required": false; }; "componentType": { "alias": "componentType"; "required": false; }; "componentConfig": { "alias": "componentConfig"; "required": false; }; }, {}, never, never, false, never>;
}

interface ITimeSlot {
    slotLabel: string;
    slotLabelWitHours?: string;
    slotTime?: number;
    slotValue: Date;
}
interface ITimeSlotHours {
    slotLabelWitHours: string;
    slotTime: number;
}

declare class InputTimeFieldComponent implements OnInit, ControlValueAccessor {
    private cdr;
    private datePipe;
    matAutocomplete: MatAutocomplete;
    inputAutoComplete: MatAutocompleteTrigger;
    startDate: Date;
    interval: number;
    displaySlotTime: boolean;
    set fromTime(fromTime: string | Date);
    get fromTime(): string | Date;
    format: string;
    label: string;
    readonly: boolean;
    showIcon: boolean;
    disabled: boolean;
    focusEvent: EventEmitter<boolean>;
    timeSlots: ITimeSlot[];
    filteredTimeSlots: ITimeSlot[];
    control: FormControl<ITimeSlot | null>;
    focused: boolean;
    private onTouched;
    private onChange;
    private fromTimeValue;
    private readonly hourMinutes;
    constructor(cdr: ChangeDetectorRef, datePipe: DatePipe);
    ngOnInit(): void;
    writeValue(value: Date): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState(isDisabled: boolean): void;
    onBlurPicker(): void;
    onFocusPicker(): void;
    /**
     * auto complete filter
     * @param query
     */
    filterTimeSlots(query?: string): void;
    /**
     * display slot label for the auto complete
     * @param slot
     */
    displayFn(slot: ITimeSlot): string;
    /**
     * on select slot
     */
    onSelect(): void;
    /**
     * Build a Time Slot object based on the time entered by the user in case the fixed slots do not exist.
     * @param time
     * @param slotLabel
     * @private
     */
    private buildTimeSlot;
    /**
     * generate the time picker slots based on the given (interval) minutes between each date
     * @private
     */
    private generateTimeSlots;
    /**
     * build slot with hours label
     * @param slotLabel
     * @param slotValue
     * @private
     */
    private buildSlotLabelWitHours;
    private formatTimeSlot;
    /**
     * set the selected time slot value
     * @param slotValue
     * @private
     */
    private setTimeSlot;
    private activeSelectedValue;
    static ɵfac: i0.ɵɵFactoryDeclaration<InputTimeFieldComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<InputTimeFieldComponent, "lib-input-time-field", never, { "startDate": { "alias": "startDate"; "required": false; }; "interval": { "alias": "interval"; "required": false; }; "displaySlotTime": { "alias": "displaySlotTime"; "required": false; }; "fromTime": { "alias": "fromTime"; "required": false; }; "format": { "alias": "format"; "required": false; }; "label": { "alias": "label"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "showIcon": { "alias": "showIcon"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "focusEvent": "focusEvent"; }, never, never, false, never>;
}

declare class InputTimeFieldModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<InputTimeFieldModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<InputTimeFieldModule, [typeof InputTimeFieldComponent], [typeof i2.CommonModule, typeof i4.ReactiveFormsModule, typeof i4.FormsModule, typeof i13.MatIconModule, typeof i13$1.MatRippleModule, typeof i6$4.MatAutocompleteModule, typeof i5.NgxMaskDirective], [typeof InputTimeFieldComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<InputTimeFieldModule>;
}

declare class InputFieldCardService {
    private maskCharacters;
    /**
     * validates using Luhrs algorithm
     * @param cardNumber
     * @param cardLength
     */
    isValidCardNumber(cardNumber: string, cardLength: number): boolean;
    mask(cardNumber: string, format: string): string;
    isMasterCard(cardNumber: string): boolean;
    isVisaCard(cardNumber: string): boolean;
    isAmericanExpressCard(cardNumber: string): boolean;
    /** China T-Union: 31*/
    isChinaTUnion(cardNumber: string): boolean;
    /** China Union Pay: 62*/
    isChinaUnionPay(cardNumber: string): boolean;
    /** Diners Club International: 36 */
    isDinersClubInternational(cardNumber: string): boolean;
    /** Diners Club United States & Canada: 54 */
    isDinersClubCAUS(cardNumber: string): boolean;
    /** Discover Card:  6011, 644-649, 65 */
    isDiscoverCard(cardNumber: string): boolean;
    /** Discover Card Co UnionPay: 622126–622925 */
    isDiscoverCardCoUnionPay(cardNumber: string): boolean;
    /** Rupay: 60, 65, 81, 82, 508 */
    isRuPay(cardNumber: string): boolean;
    /** RuPay Co JCB: 353, 356 */
    isRuPayCoJCB(cardNumber: string): boolean;
    /** InterPayment: 636 */
    isInterPayment(cardNumber: string): boolean;
    /** JCB 3528–3589*/
    isJCB(cardNumber: string): boolean;
    /** Maestro UK: 6759, 676770, 676774 */
    isMaestroUk(cardNumber: string): boolean;
    /** Maestro: 	5018, 5020, 5038, 5893, 6304, 6759, 6761, 6762, 6763 */
    isMaestro(cardNumber: string): boolean;
    /** Dankort: 5019 */
    isDankurt(cardNumber: string): boolean;
    /** DankorkCoVisa: 4571 */
    isDankurtCoVisa(cardNumber: string): boolean;
    /** Mir: 2200–2204 */
    isMir(cardNumber: string): boolean;
    /** NPS Pridnestrovie: 6054740–6054744 */
    npsPridnestrovie(cardNumber: string): boolean;
    /** Visa Electron: 4026, 417500, 4508, 4844, 4913, 4917 */
    isVisaElectron(cardNumber: string): boolean;
    /** Troy: 65 9792 */
    isTroy(cardNumber: string): boolean;
    /** Verve: 506099–506198, 650002–650027, 507865-507964 */
    isVerve(cardNumber: string, value: any): boolean;
    onKeyDown(event: KeyboardEvent, value: string, maxLenth: number): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<InputFieldCardService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<InputFieldCardService>;
}

declare class InputFieldCardNumberComponent extends InputFieldComponent implements Validator {
    private zone;
    private inputFieldCardService;
    private cdrRef;
    private mapServiceRef;
    inputElem: ElementRef;
    cardBrands: ICardBrand[];
    amExpressMask: string;
    mask4: string;
    updateCardType: EventEmitter<string>;
    value: string;
    cardType: string;
    cardBrandLogo: string;
    private cardLength;
    private isDelete;
    private cardMask;
    private caretPosition;
    constructor(zone: NgZone, inputFieldCardService: InputFieldCardService, cdrRef: ChangeDetectorRef, mapServiceRef: MapService);
    writeValue(cardNumber: string): void;
    onKeyDown(event: KeyboardEvent): void;
    validate(control: AbstractControl): ValidationErrors | null;
    onPaste(event: ClipboardEvent): void;
    onInput(event: InputEvent | Event): void;
    updateValue(): void;
    isValidCardNumber(cardNumber: string): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<InputFieldCardNumberComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<InputFieldCardNumberComponent, "lib-input-field-card-number", never, { "cardBrands": { "alias": "cardBrands"; "required": false; }; "amExpressMask": { "alias": "amExpressMask"; "required": false; }; "mask4": { "alias": "mask4"; "required": false; }; }, { "updateCardType": "updateCardType"; }, never, never, false, never>;
}

declare class InputFieldCardExpiryComponent extends InputFieldComponent<ICardDetails> implements OnInit, Validator {
    private zone;
    private cdrRef;
    private mapServiceRef;
    inputElem: ElementRef;
    value: ICardDetails;
    placeholder: string;
    private currentMonth;
    private currentYear;
    constructor(zone: NgZone, cdrRef: ChangeDetectorRef, mapServiceRef: MapService);
    ngOnInit(): void;
    writeValue(expiry: ICardDetails): void;
    validate(control: AbstractControl): ValidationErrors | null;
    onInput(): void;
    private initValidationDate;
    static ɵfac: i0.ɵɵFactoryDeclaration<InputFieldCardExpiryComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<InputFieldCardExpiryComponent, "lib-input-field-card-expiry", never, {}, {}, never, never, false, never>;
}

declare class InputFieldCardModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<InputFieldCardModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<InputFieldCardModule, [typeof InputFieldCardNumberComponent, typeof InputFieldCardExpiryComponent], [typeof i2.CommonModule, typeof i4.FormsModule, typeof i4.ReactiveFormsModule, typeof InputFieldModule, typeof i5.NgxMaskDirective, typeof i5.NgxMaskPipe], [typeof InputFieldCardNumberComponent, typeof InputFieldCardExpiryComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<InputFieldCardModule>;
}

declare class MultiFieldComponent implements OnInit, OnDestroy {
    private changeDetectorRef;
    FormFieldType: typeof FormFieldType;
    tempFieldControls: UntypedFormControl[][];
    DirectionPreference: typeof TooltipDirectionPreference;
    fieldName: string;
    config: FormSectionVariables;
    formFieldControl: UntypedFormControl;
    newRowText: string;
    useTooltips: boolean;
    disabled: boolean;
    rowDeleteConfirmationObsv: Observable<{
        fieldName: string;
        fieldValue: any;
    }>;
    maxLength: number;
    currencySymbol: string;
    errorMessage: string;
    editDisabled: boolean;
    editIndex: number;
    addDisabled: boolean;
    addingNewRow: boolean;
    rowDelete: EventEmitter<{
        fieldName: string;
        fieldValue: any;
    }>;
    rowEdit: EventEmitter<{
        rowFormControls: UntypedFormControl[][];
        config: FormSectionVariables;
    }>;
    valueChanges: EventEmitter<{
        formControl: UntypedFormControl;
        config: FormSectionVariables;
    }>;
    private componentDestroyed$;
    constructor(changeDetectorRef: ChangeDetectorRef);
    ngOnInit(): void;
    ngOnDestroy(): void;
    getDisplayValue(fieldInfo: FormFieldVariables, value: any): any;
    handleRowDeleted(rowIndex: number, event: any): void;
    handleRowDeletedAction(rowIndex: number): void;
    handleFieldClicked(fieldInfo: FormFieldVariables): void;
    handleRowClicked(rowIndex: number): void;
    handleAddClicked(): void;
    addValidityListeners(): void;
    updateValidity(): void;
    handleCancelClicked(): void;
    /**
     * This method takes the values from the input fields and either updates the
     * corresponding row of the formFieldControl value, or adds a new row to the end
     */
    handleSaveClicked(): void;
    handleTypeaheadSelected(row: number, col: number, value: ItemSummary<any>): void;
    handleTypeaheadDeselected(row: number, col: number): void;
    getEntityFunctions(fieldInfo: FormFieldVariables): any;
    static ɵfac: i0.ɵɵFactoryDeclaration<MultiFieldComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MultiFieldComponent, "lib-multi-field", never, { "fieldName": { "alias": "fieldName"; "required": false; }; "config": { "alias": "config"; "required": false; }; "formFieldControl": { "alias": "formFieldControl"; "required": false; }; "newRowText": { "alias": "newRowText"; "required": false; }; "useTooltips": { "alias": "useTooltips"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "rowDeleteConfirmationObsv": { "alias": "rowDeleteConfirmationObsv"; "required": false; }; "maxLength": { "alias": "maxLength"; "required": false; }; "currencySymbol": { "alias": "currencySymbol"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "editDisabled": { "alias": "editDisabled"; "required": false; }; }, { "rowDelete": "rowDelete"; "rowEdit": "rowEdit"; "valueChanges": "valueChanges"; }, never, never, false, never>;
}

declare class TypeaheadResultComponent {
    groups: TypeaheadResultsGroup[];
    selectionFunc: ((item: ItemSummary<any>) => void) | null;
    alternateFunc: (() => any) | null;
    alternateText: string;
    loading: boolean;
    alternateCalled: EventEmitter<void>;
    /**
     * Method to execute passed in function if it is defined
     */
    handleAlternateFunction(): void;
    /**
     *
     * @param item - item that was selected
     *
     * A method to invoke passed in selection func with item if it is defined
     */
    itemSelected(item: ItemSummary<any>): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TypeaheadResultComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TypeaheadResultComponent, "lib-typeahead-result", never, { "groups": { "alias": "groups"; "required": false; }; "selectionFunc": { "alias": "selectionFunc"; "required": false; }; "alternateFunc": { "alias": "alternateFunc"; "required": false; }; "alternateText": { "alias": "alternateText"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; }, { "alternateCalled": "alternateCalled"; }, never, never, false, never>;
}
declare class TypeaheadFieldComponent implements OnInit, OnDestroy {
    private changeDetectorRef;
    private renderer;
    entityFunctions: {
        searchFunction: (value: string) => Observable<any[]>;
        mappingFunction: (entity: any) => Observable<ItemSummary<any>>;
        filterFunction: (entity: any) => boolean;
        sortingFunction: (a: ItemSummary<any>, b: ItemSummary<any>) => number;
        resultGroupFunction?: (results: ItemSummary<any>[]) => TypeaheadResultsGroup[];
        entityMetadata?: {
            typeLabel: string;
            iconHtml: SafeHtml;
            placeholderText: string;
        };
    }[];
    selectedEntityIndex: number;
    selectionFunction: ((item: ItemSummary<any>) => void) | null;
    fieldName: string;
    placeholderText: string;
    resultLimit: number;
    alternateText: string;
    alternateFunction: ((value: string) => any) | null;
    error: string;
    set defaultText(value: string);
    defaultSearchString: string;
    suggestionText: string;
    required: boolean;
    isMultiselectMode: boolean;
    rowEditConfirmationObsv: Observable<{
        fieldName: string;
        fieldValue: any;
    }> | null;
    entitySelectMode: boolean;
    showRequiredIndicator: boolean;
    typeahead: ElementRef;
    searchResults: TypeaheadResultsGroup[];
    inputText: string;
    loading: boolean;
    displayResults: boolean;
    focused: boolean;
    private searchStringSubject;
    private inputStringSubject;
    private clickOutSubject;
    private componentDestroyed$;
    inputStringChange: Observable<string>;
    selected: EventEmitter<ItemSummary<any>>;
    deselected: EventEmitter<any>;
    constructor(changeDetectorRef: ChangeDetectorRef, renderer: Renderer2);
    ngOnInit(): void;
    ngOnDestroy(): void;
    private getSearchFuncs;
    /**
     *
     * A method to update search subject with user input
     *
     * @param searchString - User entered search string
     */
    search(searchString: string): void;
    /**
     *
     * A method to add recipient or attendee
     *
     * @param item - The ItemSummary that was selected
     */
    itemSelected(item: ItemSummary<any>): void;
    /**
     * Wraps the above method in a closure for consumption by the nested component
     */
    resultSelectFunc: (item: ItemSummary<any>) => void;
    /**
     * A method to notify parent when search bar clear is clicked
     */
    clear(): void;
    /**
     * Runs a search using the defaultSearchString when suggestion text is clicked
     */
    handleSuggestionClicked(): void;
    /**
     *
     * @param list - An Item Summary Array
     * @param searchString - String
     *
     * @return - A list of results
     *
     * This method sorts search results by most accurate according to the current search string. Begins after two characters typed.
     */
    private getListSortedByMostAccurateMatch;
    /**
     *
     * @param list - An Item Summary Array
     * @param searchString - String
     *
     * @return - An Array of lists, that each contain ItemSummaries that match different conditions to the search.
     *
     * This method is used by getListSortedByMostAccurateMatch to filter search results by placing them into sorted lists according to specific conditions measured against the search string value.
     */
    private breakListIntoSortSections;
    /**
     *
     * @param a - An Item Summary
     * @param b - An Item Summary
     *
     * @return - A number. -1 if b.header is > a.header, 0 if the same, and 1 if a.header > b.header
     */
    private sortByHeader;
    handleAlternateCalled(): void;
    handleFocus(): void;
    handleFocusOut(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TypeaheadFieldComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TypeaheadFieldComponent, "lib-typeahead-field", never, { "entityFunctions": { "alias": "entityFunctions"; "required": false; }; "selectedEntityIndex": { "alias": "selectedEntityIndex"; "required": false; }; "selectionFunction": { "alias": "selectionFunction"; "required": false; }; "fieldName": { "alias": "fieldName"; "required": false; }; "placeholderText": { "alias": "placeholderText"; "required": false; }; "resultLimit": { "alias": "resultLimit"; "required": false; }; "alternateText": { "alias": "alternateText"; "required": false; }; "alternateFunction": { "alias": "alternateFunction"; "required": false; }; "error": { "alias": "error"; "required": false; }; "defaultText": { "alias": "defaultText"; "required": false; }; "defaultSearchString": { "alias": "defaultSearchString"; "required": false; }; "suggestionText": { "alias": "suggestionText"; "required": false; }; "required": { "alias": "required"; "required": false; }; "isMultiselectMode": { "alias": "isMultiselectMode"; "required": false; }; "rowEditConfirmationObsv": { "alias": "rowEditConfirmationObsv"; "required": false; }; "entitySelectMode": { "alias": "entitySelectMode"; "required": false; }; "showRequiredIndicator": { "alias": "showRequiredIndicator"; "required": false; }; }, { "inputStringChange": "inputStringChange"; "selected": "selected"; "deselected": "deselected"; }, never, never, false, never>;
}

declare class InfoCardListComponent implements OnInit, OnDestroy {
    private changeDetectorRef;
    checkable: boolean;
    defaultCheckedValue: boolean;
    scrollable: boolean;
    filterable: boolean;
    selectable: boolean;
    set maxCount(value: number);
    get maxCount(): number;
    set itemList(value: ItemSummary<any>[]);
    get itemList(): ItemSummary<any>[];
    itemType: string;
    checkedChange: EventEmitter<{
        item: ItemSummary<any>;
        checked: boolean;
    }>;
    itemSelected: EventEmitter<ItemSummary<any>>;
    filterStringSubject: Subject<string>;
    private componentDestroyed$;
    private _maxCount;
    private _itemList;
    displayList: ItemSummary<any>[];
    constructor(changeDetectorRef: ChangeDetectorRef);
    ngOnInit(): void;
    ngOnDestroy(): void;
    /**
     *
     * Indicates that the user has changed the filter value
     *
     * @param filterValue - The new filter value
     */
    filterChange(filterValue: string): void;
    /**
     *
     * Emits an event indicating that the checkbox in one of the InfoCards in the
     * list has been checked or unchecked
     *
     * @param event - Contains the ItemSummary corresponding to the checked/unchecked InfoCard,
     * and a boolean indicating the current state of the checkbox
     */
    handleCheckedValueChange(event: {
        item: ItemSummary<any>;
        checked: boolean;
    }): void;
    /**
     *
     * Emits an event indicating that on of the InfoCards has been selected
     *
     * @param item - The ItemSummary corresponding to the selected InfoCard
     */
    handleItemSelected(item: ItemSummary<any>): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<InfoCardListComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<InfoCardListComponent, "lib-info-card-list", never, { "checkable": { "alias": "checkable"; "required": false; }; "defaultCheckedValue": { "alias": "defaultCheckedValue"; "required": false; }; "scrollable": { "alias": "scrollable"; "required": false; }; "filterable": { "alias": "filterable"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; }; "maxCount": { "alias": "maxCount"; "required": false; }; "itemList": { "alias": "itemList"; "required": false; }; "itemType": { "alias": "itemType"; "required": false; }; }, { "checkedChange": "checkedChange"; "itemSelected": "itemSelected"; }, never, never, false, never>;
}

declare class InfoCardComponent {
    item: ItemSummary<any> | null;
    checkable: boolean;
    checked: boolean;
    selectable: boolean;
    checkedChange: EventEmitter<{
        item: ItemSummary<any>;
        checked: boolean;
    }>;
    selected: EventEmitter<ItemSummary<any>>;
    /**
     * Emits an event indicating that the InfoCard was clicked.
     */
    selectItem(): void;
    /**
     * Calls the the ItemSummary's header function
     */
    selectHeader(): void;
    /**
     * Calls the the ItemSummary's header function subheader function for the given subheader
     */
    selectSubheader(subheader: ItemInfoLine): void;
    /**
     * Calls the the ItemSummary's header function detail function for the given detail
     */
    selectDetail(detail: ItemInfoLine): void;
    /**
     * Calls the the ItemSummary's action handler function
     */
    handleAction(action: ((arg: ItemSummary<any>) => any) | undefined): void;
    /**
     * Emits an event indicating that the checkbox has been checked or unchecked
     *
     * @param event - The Angular Material event indicating the checked state of the checkbox
     */
    handleCheckedValueChange(event: boolean): void;
    safeHtmlToString(value: any): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<InfoCardComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<InfoCardComponent, "lib-info-card", never, { "item": { "alias": "item"; "required": false; }; "checkable": { "alias": "checkable"; "required": false; }; "checked": { "alias": "checked"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; }; }, { "checkedChange": "checkedChange"; "selected": "selected"; }, never, never, false, never>;
}

declare class InfoCardModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<InfoCardModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<InfoCardModule, [typeof InfoCardComponent], [typeof i2.CommonModule, typeof TooltipModule, typeof DashedCheckboxModule], [typeof InfoCardComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<InfoCardModule>;
}

declare class InfoCardListModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<InfoCardListModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<InfoCardListModule, [typeof InfoCardListComponent], [typeof i2.CommonModule, typeof InfoCardModule, typeof SearchBarModule], [typeof InfoCardListComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<InfoCardListModule>;
}

declare class TypeaheadFieldModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<TypeaheadFieldModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<TypeaheadFieldModule, [typeof TypeaheadFieldComponent, typeof TypeaheadResultComponent], [typeof i2.CommonModule, typeof i3$4.MatProgressSpinnerModule, typeof SearchBarModule, typeof TooltipModule, typeof i14.MatMenuModule, typeof InfoCardListModule, typeof i4$1.TranslateModule], [typeof TypeaheadFieldComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<TypeaheadFieldModule>;
}

declare class MultiFieldModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<MultiFieldModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<MultiFieldModule, [typeof MultiFieldComponent], [typeof i2.CommonModule, typeof FormFieldModule, typeof TypeaheadFieldModule, typeof TooltipModule, typeof ButtonsModule], [typeof MultiFieldComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<MultiFieldModule>;
}

declare class SelectableComponent implements ControlValueAccessor, OnChanges, OnInit {
    private cdr;
    options: SelectOption<string>[];
    singleSelectionOnly: boolean;
    maxSelectionPossible: number;
    maxSelectionsReached: EventEmitter<boolean>;
    disableSelection: boolean;
    private onChange;
    private onTouched;
    private lastWrittenValue;
    constructor(cdr: ChangeDetectorRef);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    writeValue(values: string | string[] | null): void;
    registerOnChange(fn: (value: string | string[] | null) => void): void;
    registerOnTouched(fn: () => void): void;
    setDisabledState(isDisabled: boolean): void;
    onSelection(value: string): void;
    onToggle(selectedOption: SelectOption<string>): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SelectableComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SelectableComponent, "lib-selectable", never, { "options": { "alias": "options"; "required": false; }; "singleSelectionOnly": { "alias": "singleSelectionOnly"; "required": false; }; "maxSelectionPossible": { "alias": "maxSelectionPossible"; "required": false; }; }, { "maxSelectionsReached": "maxSelectionsReached"; }, never, never, false, never>;
}

declare class SelectableModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<SelectableModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<SelectableModule, [typeof SelectableComponent], [typeof i2.CommonModule, typeof i3.IonicModule, typeof i4$1.TranslateModule], [typeof SelectableComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<SelectableModule>;
}

declare class TextListComponent {
    private changeDetectorRef;
    textListStrings: string[];
    placeholderText: string;
    isUrlList: boolean;
    disabled: boolean;
    buttonsHidden: boolean;
    showIndex: number;
    readonly textInputControl: FormControl<string>;
    listChange: EventEmitter<string[]>;
    constructor(changeDetectorRef: ChangeDetectorRef);
    /**
     * Adds new item in list, and clears the 'add' input value
     */
    addTextItem(): void;
    /**
     * Splices the deleted item from the list
     */
    deleteTextItem(text: string): void;
    /**
     * Called when clicking in or out of the input
     */
    handleButtonToggle(): void;
    hideButtons(): void;
    /**
     * Adds the input's string as part of the list on Enter key press
     */
    onKeyUp(event: KeyboardEvent): void;
    openUrl(item: string): void;
    cancel(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TextListComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TextListComponent, "lib-text-list", never, { "textListStrings": { "alias": "textListStrings"; "required": false; }; "placeholderText": { "alias": "placeholderText"; "required": false; }; "isUrlList": { "alias": "isUrlList"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "listChange": "listChange"; }, never, never, false, never>;
}

declare class TextListModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<TextListModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<TextListModule, [typeof TextListComponent], [typeof i2.CommonModule, typeof ButtonsModule, typeof i4.ReactiveFormsModule], [typeof TextListComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<TextListModule>;
}

declare class RatingFieldComponent implements OnInit, OnDestroy {
    formFieldControl: FormControl<string | null>;
    required: boolean;
    label: string;
    submitted: boolean;
    showLabelInRequiredErrorMessage: boolean;
    readOnly: boolean;
    showRequiredIndicator: boolean;
    options: SelectOption<string>[];
    private componentDestroyed$;
    ngOnInit(): void;
    ngOnDestroy(): void;
    handleClick(value: string): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<RatingFieldComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<RatingFieldComponent, "lib-rating-field", never, { "formFieldControl": { "alias": "formFieldControl"; "required": false; }; "required": { "alias": "required"; "required": false; }; "label": { "alias": "label"; "required": false; }; "submitted": { "alias": "submitted"; "required": false; }; "showLabelInRequiredErrorMessage": { "alias": "showLabelInRequiredErrorMessage"; "required": false; }; "readOnly": { "alias": "readOnly"; "required": false; }; "showRequiredIndicator": { "alias": "showRequiredIndicator"; "required": false; }; "options": { "alias": "options"; "required": false; }; }, {}, never, never, false, never>;
}

declare class RatingFieldModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<RatingFieldModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<RatingFieldModule, [typeof RatingFieldComponent], [typeof i2.CommonModule, typeof FormFieldModule, typeof TooltipModule], [typeof RatingFieldComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<RatingFieldModule>;
}

declare class FormGeneratorModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<FormGeneratorModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<FormGeneratorModule, [typeof FormGeneratorComponent, typeof FormGroupComponent, typeof InjectableFormFieldWrapperComponent], [typeof i2.CommonModule, typeof ExpansionPanelModule, typeof FormFieldModule, typeof InputTimeFieldModule, typeof InputFieldCardModule, typeof InputFieldSelectModule, typeof MultiFieldModule, typeof MultiselectModule, typeof NotificationsModule, typeof i4.ReactiveFormsModule, typeof SelectableModule, typeof TelInputModule, typeof TextListModule, typeof TypeaheadFieldModule, typeof TooltipModule, typeof RatingFieldModule], [typeof FormGeneratorComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<FormGeneratorModule>;
}

interface IDateFormats {
    display: {
        dateInput: string;
    };
}

declare class DateFilterComponent implements OnInit, OnDestroy {
    private dateFormats;
    submitted: boolean;
    placeholder: string;
    disabled: boolean;
    rangeSelect: boolean;
    formFieldControl: UntypedFormControl;
    dateFormat: string;
    rangeGroup: UntypedFormGroup;
    dateInputPlaceholder: string;
    focused: boolean;
    private componentDestroyed$;
    constructor(dateFormats: IDateFormats);
    ngOnInit(): void;
    ngOnDestroy(): void;
    /**
     * @param $event - Object which contains date selected using mat-datepicker or entered manually by user
     *
     * Transform user entered date using provided dateFormat
     */
    processDate(value: string | Date | null | FocusEvent, formControlName?: string): void;
    handleFocus(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DateFilterComponent, [{ optional: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DateFilterComponent, "lib-date-filter", never, { "submitted": { "alias": "submitted"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "rangeSelect": { "alias": "rangeSelect"; "required": false; }; "formFieldControl": { "alias": "formFieldControl"; "required": false; }; "dateFormat": { "alias": "dateFormat"; "required": false; }; }, {}, never, never, false, never>;
}

type GridSortDirection = 'Ascending' | 'Descending' | null;

interface IUserFilter {
    publicFieldName: string;
    operatorType: string;
    values: any[];
}

interface IFilterDataRequest {
    name: string;
    projectGridFilterId?: string;
    collectionName?: string;
    userFilters: IUserFilter[];
    sort?: {
        field: string;
        direction: GridSortDirection;
    };
    order?: number;
}

interface IFilterDefinition {
    publicFieldName: string;
    label: string;
    displayedToUser?: boolean;
    filterCriterias: {
        operator: {
            label: string;
            value: string;
        };
        filterParameters: {
            name?: string;
            label: string;
            initialValue: string;
            controlType: string;
            apiQueryUrl: string;
            separator?: string;
            values: {
                key: string | number;
                value: string;
            }[];
        }[];
    }[];
}

interface IGridFilterConfig {
    handleGetFilters(): Observable<IFilterDataRequest[]>;
    handleUpdateAllFilters(filterDataRequest: IFilterDataRequest[]): Observable<IFilterDataRequest[]>;
    handleGetFilterDefinitions(): Observable<IFilterDefinition[]>;
    handleCreateFilters(userFilter: IFilterDataRequest): Observable<any>;
    handleUpdateFilters(userFilter: IFilterDataRequest): Observable<any>;
    handleDeleteFilters(projectGridFilterId: string): Observable<any>;
    handleGetFilterOptions(backendQueryUrl: string, searchString: string): Observable<any>;
    handleGetFilterOptionData(backendQueryUrl: string, searchKey: string): Observable<any>;
}

interface FilterOption {
    key: string;
    value: string | number;
}
type GenericFilterOperator = FilterOperator<unknown>;
declare class GridFilterService {
    gridFilterConfig: IGridFilterConfig | null;
    userFiltersList: IFilterDataRequest[];
    savedFiltersList: IFilterDataRequest[];
    dateFormat: string;
    filterDefinitions: IFilterDefinition[];
    standardFilters: IFilterDataRequest[];
    options: GenericFilterOperator[];
    operators: GenericFilterOperator[][];
    values: GenericFilterOperator[][][][];
    private _activeFilterIndex;
    private gridFiltersSubject;
    private gridFilterDefinitionsSubject;
    private activeFilterChanged;
    private currencyDisplaySymbolSubject;
    get gridFilters(): Observable<IFilterDataRequest[] | null>;
    get gridFilterDefinitions(): Observable<IFilterDefinition[] | null>;
    get activeFilter(): Observable<IFilterDataRequest | null>;
    get currencyDisplaySymbol(): Observable<string | null>;
    applyUserFilter(activeFilter: IFilterDataRequest | string, standardFilter?: boolean): void;
    getUserFilters(): void;
    updateAllFilters(userFiltersList: Array<IFilterDataRequest>): void;
    getGridFilterDefinations(): void;
    createUpdateUserFilter(userFilter: IFilterDataRequest | null, applyOnly?: boolean): Observable<unknown>;
    deleteUserFilter(filterIndex: number): void;
    setCurrencyDisplaySymbol(currencyDisplaySymbol: string): void;
    private getListSortedByMostAccurateMatch;
    getFiltersOptions(backendQueryUrl: string, searchString: string): Observable<FilterOption[]>;
    getFilterOptionData(backendQueryUrl: string, value: string): Observable<FilterOption | null>;
    processFilterDefinitions(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<GridFilterService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<GridFilterService>;
}

declare class FilterBarComponent implements OnInit, OnDestroy {
    private readonly dialog;
    private readonly changeDetectorRef;
    private readonly gridFilterService;
    applyFilter: EventEmitter<any>;
    searchStringChange: EventEmitter<string>;
    dateFormat: string;
    gridFilterConfig: IGridFilterConfig;
    userFiltersList: IFilterDataRequest[];
    standardFilters: SelectOption<string | number>[];
    savedFilters: SelectOption<string | number>[];
    showAllFilters: boolean;
    readonly maxFilterCount = 3;
    filters: SelectOption<number>[];
    activeFilter: IFilterDataRequest;
    private componentDestroyed$;
    private filterOptions;
    private filterOperators;
    private filterValues;
    constructor(dialog: MatDialog, changeDetectorRef: ChangeDetectorRef, gridFilterService: GridFilterService);
    ngOnInit(): void;
    ngOnDestroy(): void;
    removeFilter(filter: SelectOption<number>): void;
    removeAllFilters(): void;
    toggleShowAllFilters(): void;
    handleApplyFilter(filter: IFilterDataRequest): void;
    handleApplyStandardFilter(standardFilterValue: string | number): void;
    handleOpenFilterModal(): void;
    handleManageFilterModal(): void;
    updateUserFilters(userFilter: IFilterDataRequest): void;
    private processFilterDataRequest;
    private processUserFilters;
    onSearchStringChange(query: string): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<FilterBarComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FilterBarComponent, "lib-filter-bar", never, { "userFiltersList": { "alias": "userFiltersList"; "required": false; }; "standardFilters": { "alias": "standardFilters"; "required": false; }; "savedFilters": { "alias": "savedFilters"; "required": false; }; "showAllFilters": { "alias": "showAllFilters"; "required": false; }; "filters": { "alias": "filters"; "required": false; }; "activeFilter": { "alias": "activeFilter"; "required": false; }; }, { "applyFilter": "applyFilter"; "searchStringChange": "searchStringChange"; }, never, never, false, never>;
}

declare enum FilterType {
    SingleSelect = "SingleSelect",
    MultiSelect = "MultiSelect",
    DateFilter = "Date",
    AutoCompleteMulti = "AutoCompleteMulti",
    Currency = "Currency",
    Text = "Text",
    Number = "Number"
}

type FilterOptionType = FilterOperator<any>;
type FilterOperatorType = FilterOperator<any>[];
type FilterValueType = FilterOperator<any>[][][][];
declare class GridFiltersModalComponent implements OnInit, OnDestroy {
    private _formBuilder;
    private dialogRef;
    private dialog;
    private domSanitizer;
    private gridFilterService;
    private changeDetectorRef;
    modalData: IFilterDataRequest;
    saveFilterRadioButtonRef: ElementRef<FormFieldComponent>;
    mode: 'edit' | 'create';
    formGroup: UntypedFormGroup;
    submitted: boolean;
    dateFormat: string;
    applyFilterText: 'Apply' | 'Save' | 'Apply & Save';
    options: FilterOptionType[];
    operators: FilterOperatorType[];
    values: FilterValueType;
    readonly FilterTypeEnum: typeof FilterType;
    headerIconTray: ItemActionHandler[];
    enableClearAll: boolean;
    formGroupValueChanged: boolean;
    existingFilterProjectID: string;
    invalidPatternMessage: string;
    userFiltersList: IFilterDataRequest[];
    activeUserFilter: IFilterDataRequest;
    filterDialogComponentRect: {
        width: number;
        height: number;
    };
    currencyDisplaySymbol: string;
    FormFieldType: typeof FormFieldType;
    getFiltersOptions: (backendQueryUrl: string, searchString: string, options: FilterOptionType[]) => Observable<FilterOptionType[]>;
    private valueForRadio;
    deselectableRadioButtonFormControl: UntypedFormControl;
    radioCheckbox: SelectOption<string>;
    private formArrayValueChanged$;
    private componentDestroyed$;
    private retryAddingUserFilter;
    get userFiltersFormControl(): UntypedFormArray;
    get nameFormControl(): FormControl;
    onResize(event: Event): void;
    constructor(_formBuilder: UntypedFormBuilder, dialogRef: MatDialogRef<GridFiltersModalComponent>, dialog: MatDialog, domSanitizer: DomSanitizer, gridFilterService: GridFilterService, changeDetectorRef: ChangeDetectorRef, modalData: IFilterDataRequest);
    private updateComponentRect;
    ngOnInit(): void;
    ngOnDestroy(): void;
    private initListeners;
    private patchFormGroupValues;
    private watchForValueChanges;
    private createFormGroup;
    private transformFilter;
    private saveFilterValue;
    private saveAndReplaceFilterValue;
    /**
     * Closes the dialog
     */
    handleClickCancel(): void;
    /**
     * Closes the dialog and returns user filter object to the dialog owner.
     */
    handleClickSave(): void;
    /**
     * Closes the dialog and returns user filter object to the dialog owner.
     */
    handleClickSaveApply(): void;
    addUserFilter(userFilterCriteria?: IUserFilter): void;
    handleRowDeleted(rowIndex: number, event: Event): void;
    handleClearAll(): void;
    getFormControl(control: AbstractControl | null): FormControl;
    getFormArrayControls(control: AbstractControl | null): AbstractControl[];
    static ɵfac: i0.ɵɵFactoryDeclaration<GridFiltersModalComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<GridFiltersModalComponent, "lib-grid-filters-modal", never, {}, {}, never, never, false, never>;
}

interface IManageFiltersModalMiscellaneousData {
    dragHandles?: {
        icon?: string;
    };
}

interface ISelectFilterGridMiscellaneousData {
    downChevron?: {
        icon?: string;
    };
}

interface IGridMiscellaneousData {
    gridFiltersModal?: {
        selectFilter?: ISelectFilterGridMiscellaneousData;
    };
    manageFiltersModal?: IManageFiltersModalMiscellaneousData;
}

declare class GridService {
    gridMiscellaneousData: IGridMiscellaneousData | null;
    setGridMiscellaneousData(gridMiscellaneousData: IGridMiscellaneousData): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<GridService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<GridService>;
}

declare class SelectFilterComponent implements OnInit, OnChanges {
    private changeDetectorRef;
    private gridService;
    select: any;
    submitted: boolean;
    placeholder: string;
    multiple: boolean;
    operator: string;
    disabled: boolean;
    showSelectMessage: boolean;
    formFieldControl: UntypedFormControl;
    options: FilterOperator<any>[];
    backendQueryUrl: string;
    getFiltersOptions?: (backendQueryUrl: string, value: string, options: any) => Observable<any[]>;
    required: boolean;
    focused: boolean;
    filteredOptions: SelectOption<any>[];
    readonly thresholdOptionValue = 10;
    selectFilterGridMiscellaneousData: ISelectFilterGridMiscellaneousData;
    private searchString;
    private debouncer$;
    private componentDestroyed$;
    constructor(changeDetectorRef: ChangeDetectorRef, gridService: GridService);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    private transformValue;
    filterChange(searchString: string, emitFilterChange?: boolean): void;
    handleFocus(): void;
    handleFocusOut(): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SelectFilterComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SelectFilterComponent, "lib-select-filter", never, { "submitted": { "alias": "submitted"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "operator": { "alias": "operator"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "showSelectMessage": { "alias": "showSelectMessage"; "required": false; }; "formFieldControl": { "alias": "formFieldControl"; "required": false; }; "options": { "alias": "options"; "required": false; }; "backendQueryUrl": { "alias": "backendQueryUrl"; "required": false; }; "getFiltersOptions": { "alias": "getFiltersOptions"; "required": false; }; }, {}, never, never, false, never>;
}

declare class ManageFiltersModalComponent implements OnInit, OnDestroy {
    private dialogRef;
    private dialog;
    private domSanitizer;
    private gridFilterService;
    private popupModalService;
    private gridService;
    modalData: IFilterDataRequest;
    manageFiltersModalMiscellaneousData: IManageFiltersModalMiscellaneousData;
    userFiltersList: IFilterDataRequest[];
    tempUserFiltersList: IFilterDataRequest[];
    headerIconTray: ItemActionHandler[];
    private componentDestroyed$;
    constructor(dialogRef: MatDialogRef<ManageFiltersModalComponent>, dialog: MatDialog, domSanitizer: DomSanitizer, gridFilterService: GridFilterService, popupModalService: PopupModalService, gridService: GridService, modalData: IFilterDataRequest);
    ngOnInit(): void;
    ngOnDestroy(): void;
    handleClose(): void;
    drop(event: CdkDragDrop<string[]>): void;
    handleApplyAll(): void;
    saveFiltersList(): void;
    handleClearAll(): void;
    handleApplyFilter(filterDataRequest: IFilterDataRequest): void;
    handleEditFilter(filterDataRequest: IFilterDataRequest): void;
    canApplyChanges(): boolean;
    handleDeleteFilter(filterIndex: number): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ManageFiltersModalComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ManageFiltersModalComponent, "lib-manage-filters-modal", never, {}, {}, never, never, false, never>;
}

declare enum PremiumChipVariantTypes {
    PRIMARY = "primary",
    GLASS = "glass"
}

declare class PremiumChipComponent implements AfterViewInit {
    private changeDetectorRef;
    matChipRef: ElementRef<HTMLElement>;
    PREMIUM_CHIP_VARIANT_TYPES: typeof PremiumChipVariantTypes;
    variant: PremiumChipVariantTypes;
    private resizeObserver;
    bgSvgUniqueIds: {
        fadeMaskBorderBottom: string;
        premiumChipBorderBottom: string;
        fadeMaskBorderTop: string;
        premiumChipBorderTop: string;
        fadeMaskInner: string;
        premiumChipInnerMaskGradient: string;
        premiumChipInner: string;
        premiumChipBorder: string;
        glassBorderGradient: string;
        glassInnerGradient: string;
        glassClipRoundedCorners: string;
        glassBorderMask: string;
    };
    appPremiumChipContainerOffsetHeight: number;
    appPremiumChipContainerOffsetWidth: number;
    updateSvg: boolean;
    readonly difference = 2.5;
    constructor(changeDetectorRef: ChangeDetectorRef);
    ngAfterViewInit(): void;
    private initChipContainer;
    private updateChipRect;
    static ɵfac: i0.ɵɵFactoryDeclaration<PremiumChipComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<PremiumChipComponent, "lib-premium-chip", never, { "variant": { "alias": "variant"; "required": false; }; }, {}, never, ["*"], false, never>;
}

declare class PrimaryChipComponent {
    height: number;
    width: number;
    static ɵfac: i0.ɵɵFactoryDeclaration<PrimaryChipComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<PrimaryChipComponent, "lib-primary-chip", never, { "height": { "alias": "height"; "required": false; }; "width": { "alias": "width"; "required": false; }; }, {}, never, never, false, never>;
}

interface IGlassChipIds {
    glassBorderGradient: string;
    glassInnerGradient: string;
    glassClipRoundedCorners: string;
    glassBorderMask: string;
}

declare class GlassChipComponent implements OnInit {
    bgSvgUniqueIds: IGlassChipIds;
    height: number;
    width: number;
    ngOnInit(): void;
    private randomString;
    static ɵfac: i0.ɵɵFactoryDeclaration<GlassChipComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<GlassChipComponent, "lib-glass-chip", never, { "height": { "alias": "height"; "required": false; }; "width": { "alias": "width"; "required": false; }; }, {}, never, never, false, never>;
}

declare class PremiumChipModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<PremiumChipModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<PremiumChipModule, [typeof PremiumChipComponent, typeof PrimaryChipComponent, typeof GlassChipComponent], [typeof i2.CommonModule], [typeof PremiumChipComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<PremiumChipModule>;
}

declare class GridFiltersModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<GridFiltersModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<GridFiltersModule, [typeof GridFiltersModalComponent, typeof SelectFilterComponent, typeof DateFilterComponent, typeof FilterBarComponent, typeof ManageFiltersModalComponent], [typeof i2.CommonModule, typeof i8.HttpClientModule, typeof i3$1.DragDropModule, typeof i4.FormsModule, typeof i10$2.MenuModule, typeof i4.ReactiveFormsModule, typeof FormFieldModule, typeof i12.MatChipsModule, typeof i6$3.MatDatepickerModule, typeof i4$4.MatDialogModule, typeof i15.MatDividerModule, typeof i14.MatMenuModule, typeof i5$1.MatDateFnsModule, typeof i10$1.MatSelectModule, typeof i6.MatInputModule, typeof i13.MatIconModule, typeof SearchBarModule, typeof TooltipModule, typeof ButtonsModule, typeof i4$1.TranslateModule, typeof PremiumChipModule, typeof DashedCheckboxModule, typeof PipeModule], [typeof GridFiltersModalComponent, typeof SelectFilterComponent, typeof DateFilterComponent, typeof FilterBarComponent, typeof ManageFiltersModalComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<GridFiltersModule>;
}

interface IGridRow<T> {
    id?: number | string;
    hasEditPermissions?: boolean;
    hasDeletePermissions?: boolean;
    data: T;
    displayValues?: T;
    rowMenuItems?: MenuItem[];
}

declare class ToolbarComponent<T = unknown> {
    enableCreate: boolean;
    enableRefresh: boolean;
    enableTrash: boolean;
    enableSelection: boolean;
    enableGridFilters: boolean;
    isEditInProgress: boolean;
    rowsPerPage: number;
    selectAllConfirmMsg: string;
    selectAllConfirmedMsg: string;
    selectAllExceptSomeRecordsConfirmedMsg: string;
    clearSelectionMsg: string;
    totalRecords: number;
    excludedRows: (string | number)[];
    selectAllConfirmButtonLabel: string;
    selectedRows: IGridRow<T>[];
    selectAllPagesConfirmed: boolean;
    createClicked: EventEmitter<boolean>;
    refreshData: EventEmitter<boolean>;
    showTrash: EventEmitter<boolean>;
    userFilter: EventEmitter<IFilterDataRequest>;
    selectAllPages: EventEmitter<boolean>;
    searchStringSubject: Subject<string>;
    private trashSelected;
    emitRefreshEvent(): void;
    emitCreateEvent(): void;
    emitTrashEvent(): void;
    getTrashSelected(): boolean;
    handleSearchStringChange(query: string): void;
    handleApplyFilter(userFilter: IFilterDataRequest): void;
    onSelectAllPages(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ToolbarComponent<any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ToolbarComponent<any>, "lib-grid-toolbar", never, { "enableCreate": { "alias": "enableCreate"; "required": false; }; "enableRefresh": { "alias": "enableRefresh"; "required": false; }; "enableTrash": { "alias": "enableTrash"; "required": false; }; "enableSelection": { "alias": "enableSelection"; "required": false; }; "enableGridFilters": { "alias": "enableGridFilters"; "required": false; }; "isEditInProgress": { "alias": "isEditInProgress"; "required": false; }; "rowsPerPage": { "alias": "rowsPerPage"; "required": false; }; "selectAllConfirmMsg": { "alias": "selectAllConfirmMsg"; "required": false; }; "selectAllConfirmedMsg": { "alias": "selectAllConfirmedMsg"; "required": false; }; "selectAllExceptSomeRecordsConfirmedMsg": { "alias": "selectAllExceptSomeRecordsConfirmedMsg"; "required": false; }; "clearSelectionMsg": { "alias": "clearSelectionMsg"; "required": false; }; "totalRecords": { "alias": "totalRecords"; "required": false; }; "excludedRows": { "alias": "excludedRows"; "required": false; }; "selectAllConfirmButtonLabel": { "alias": "selectAllConfirmButtonLabel"; "required": false; }; "selectedRows": { "alias": "selectedRows"; "required": false; }; "selectAllPagesConfirmed": { "alias": "selectAllPagesConfirmed"; "required": false; }; }, { "createClicked": "createClicked"; "refreshData": "refreshData"; "showTrash": "showTrash"; "userFilter": "userFilter"; "selectAllPages": "selectAllPages"; "searchStringSubject": "searchStringSubject"; }, never, never, false, never>;
}

declare class GridToolbarModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<GridToolbarModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<GridToolbarModule, [typeof ToolbarComponent], [typeof i2.CommonModule, typeof i4$1.TranslateModule, typeof GridFiltersModule], [typeof ToolbarComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<GridToolbarModule>;
}

declare class EditCompleteEvent {
    field: string;
    column: IGridColumn;
    row: IGridRow<any>;
    value: any;
    previousValue: any;
    constructor(event: PrimeNgEditEvent, previousValue: any);
}
type PrimeNgEditEvent = {
    index?: number;
    field: string;
    data: {
        column: IGridColumn;
        row: IGridRow<any>;
    };
};

interface IGridColumnChange {
    groupByField?: IGridColumn | null;
    columns?: IGridColumn[];
    filteredColumns?: IGridColumn[];
}

interface IGridDataRequest {
    from: number;
    size: number;
    userFilters?: IUserFilter[];
    sortField?: string;
    sortDirection?: GridSortDirection;
    groupByField?: string;
    searchString?: string;
}

declare class GridComponent<T extends Record<string, any> = Record<string, any>> implements OnInit, OnChanges, OnDestroy, AfterViewInit {
    private dialog;
    private changeDetectorRef;
    private gridFilterService;
    private getDisplayValuePipe;
    private currencyPipe;
    private gridService;
    readonly defaultRowPerPageOptions: number[];
    readonly defaultRowsPerPage: number;
    hideToolbar: boolean;
    hideSettings: boolean;
    hideRowMenu: boolean;
    enableSelection: boolean;
    enableGridFilters: boolean;
    enableCreate: boolean;
    enableRefresh: boolean;
    enableTrash: boolean;
    isLoading: boolean;
    totalRecords: number;
    rowsPerPage: number;
    first: number;
    rowsPerPageOptions: number[];
    paginatorDataTypeLabel: string;
    selectAllConfirmButtonLabel: string;
    selectAllConfirmMsg: string;
    selectAllConfirmedMsg: string;
    selectAllExceptSomeRecordsConfirmedMsg: string;
    clearSelectionMsg: string;
    actionButtons: string[];
    currencyDisplayCode: string;
    minimumColumnWidth: number;
    processedData: IGridRow<T>[];
    FormFieldType: typeof FormFieldType;
    controlTypes: {
        Percent: string;
        ActionButtons: string;
        Image: string;
        SingleSelect: string;
        MultiSelect: string;
        Number: string;
        AutoComplete: string;
        AutoCompleteMulti: string;
        MultiField: string;
        Text: string;
        Date: string;
        Currency: string;
        Boolean: string;
        Html: string;
    };
    fieldTypeMap: {
        [key: string]: FormFieldType;
    };
    private _sortField;
    set sortField(value: string);
    get sortField(): string;
    private _groupByField;
    set groupByField(value: IGridColumn | null);
    get groupByField(): IGridColumn | null;
    gridFilterConfig: IGridFilterConfig | null;
    private _sortOrder;
    set sortOrder(value: GridSortDirection | null);
    get sortOrder(): GridSortDirection | null;
    /**
     * Calculate minimum height for table body based on rowsPerPage to prevent jittering
     * Row height is approximately 60px (including padding, borders, spacing, and loading state)
     */
    get tableBodyMinHeight(): string;
    private _allColumns;
    set columns(columns: IGridColumn[]);
    get columns(): IGridColumn[];
    private _processedData;
    set data(data: IGridRow<T>[]);
    get data(): IGridRow<T>[];
    filterDefinitions: IFilterDefinition[];
    userFiltersList: IFilterDataRequest[];
    dateFormat: string;
    maxPinnedColumns: number;
    errorInlineMode: boolean;
    gridMiscellaneousData?: IGridMiscellaneousData;
    lazyLoad: EventEmitter<IGridDataRequest>;
    columnsChange: EventEmitter<IGridColumnChange>;
    editComplete: EventEmitter<EditCompleteEvent>;
    editChange: EventEmitter<boolean>;
    bulkDelete: EventEmitter<{
        selectedRows: IGridRow<T>[];
    }>;
    selectAllPages: EventEmitter<boolean>;
    cellClicked: EventEmitter<{
        data: T;
        colName: string;
    }>;
    createClicked: EventEmitter<boolean>;
    refreshData: EventEmitter<boolean>;
    showTrash: EventEmitter<boolean>;
    actionButtonClicked: EventEmitter<{
        event: string;
        data: T;
    }>;
    excludeItem: EventEmitter<(string | number)[]>;
    paginator: Paginator;
    private _paginatorContainerRef;
    set paginatorContainerRef(value: ElementRef);
    display: boolean;
    selectedRows: IGridRow<T>[];
    excludedRows: (string | number)[];
    pagedProcessedData: IGridRow<T>[];
    filteredColumns: IGridColumn[];
    parsedSortOrder: number | null;
    editFormControl: UntypedFormControl;
    editSelectOptions: SelectOption<string | number | boolean>[];
    totalNumberOfPinnedColumns: number;
    columnManagementModalOpen: boolean;
    expanded: boolean;
    isEditInProgress: boolean;
    allRowsExpanded: boolean;
    selectAllPagesConfirmed: boolean;
    currentPage: number;
    private parsedSortField;
    private get allColumns();
    private set allColumns(value);
    private precomputeColumnControlTypes;
    searchString: string;
    private searchStringSubject;
    private componentDestroyed$;
    private userFilter;
    private lastChangedFieldValue;
    private didPaginate;
    private lazyLoadEvent;
    private firstChange;
    constructor(dialog: MatDialog, changeDetectorRef: ChangeDetectorRef, gridFilterService: GridFilterService, getDisplayValuePipe: GetDisplayValuePipe, currencyPipe: CurrencyPipe, gridService: GridService);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    private emitGridMiscellaneousData;
    private processDisplayValues;
    toggleAll(): void;
    getGroupValue: (row: IGridRow<T>) => any;
    onSelectionChange(rowsData: IGridRow<T>[]): void;
    getFormFieldType(controlType: string): FormFieldType;
    private setDisplayValue;
    isArray(data: any): boolean;
    onLazyLoad(event: TableLazyLoadEvent): void;
    handleSearchStringChange(query: string): void;
    paginate(event: any): void;
    private updatePaginationButtons;
    onSelectAllPages($event: boolean): void;
    onBulkDelete(): void;
    private emitLazyLoad;
    private validateConfig;
    private createMenuItems;
    openManagementModal(): void;
    handleEditComplete(event: any): void;
    handleEditInit(event: any): void;
    handleEditCancel(event: any): void;
    handleUnpinColumn(column: IGridColumn, event: MouseEvent): void;
    colReorder(event: TableColumnReorderEvent): void;
    colResize(event: any): void;
    calculateNumberAndPositionOfPinnedColumns(): void;
    handleApplyFilter(userFilter: IFilterDataRequest): void;
    private getBtnElements;
    private expandAllGroups;
    private filterGridColumns;
    /**
     * Calculates the index of the first element on a specified page given the page number and rows per page.
     *
     * @param   {number} page         - The page number (0 is the 1st page).
     * @param   {number} rowsPerPage  - The number of rows per page.
     * @return {number}              - The index of the first element on the specified page.
     *
     * @example
     * // Returns 0 for the first page with 10 rows per page.
     * const firstElementIndex = getFirstNthOfPage(0, 10);
     *
     * // Returns 20 for the third page with 10 rows per page.
     * const thirdPageFirstElementIndex = getFirstNthOfPage(2, 10);
     */
    private getFirstNthOfPage;
    emitClickCellEvent(rowData: IGridRow<T>, colName: string, controlType: string): void;
    emitRefreshEvent(): void;
    emitCreateEvent(): void;
    emitTrashEvent(event: boolean): void;
    emitActionButton(event: string, rowData: IGridRow<T>): void;
    updateCurrentPage(currentPage: number): void;
    resetSelectedRows(): void;
    onRowSelected(event: any): void;
    onRowUnselected(event: any): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<GridComponent<any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<GridComponent<any>, "lib-grid", never, { "hideToolbar": { "alias": "hideToolbar"; "required": false; }; "hideSettings": { "alias": "hideSettings"; "required": false; }; "hideRowMenu": { "alias": "hideRowMenu"; "required": false; }; "enableSelection": { "alias": "enableSelection"; "required": false; }; "enableGridFilters": { "alias": "enableGridFilters"; "required": false; }; "enableCreate": { "alias": "enableCreate"; "required": false; }; "enableRefresh": { "alias": "enableRefresh"; "required": false; }; "enableTrash": { "alias": "enableTrash"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; "totalRecords": { "alias": "totalRecords"; "required": false; }; "rowsPerPage": { "alias": "rowsPerPage"; "required": false; }; "first": { "alias": "first"; "required": false; }; "rowsPerPageOptions": { "alias": "rowsPerPageOptions"; "required": false; }; "paginatorDataTypeLabel": { "alias": "paginatorDataTypeLabel"; "required": false; }; "selectAllConfirmButtonLabel": { "alias": "selectAllConfirmButtonLabel"; "required": false; }; "selectAllConfirmMsg": { "alias": "selectAllConfirmMsg"; "required": false; }; "selectAllConfirmedMsg": { "alias": "selectAllConfirmedMsg"; "required": false; }; "selectAllExceptSomeRecordsConfirmedMsg": { "alias": "selectAllExceptSomeRecordsConfirmedMsg"; "required": false; }; "clearSelectionMsg": { "alias": "clearSelectionMsg"; "required": false; }; "actionButtons": { "alias": "actionButtons"; "required": false; }; "currencyDisplayCode": { "alias": "currencyDisplayCode"; "required": false; }; "minimumColumnWidth": { "alias": "minimumColumnWidth"; "required": false; }; "sortField": { "alias": "sortField"; "required": false; }; "groupByField": { "alias": "groupByField"; "required": false; }; "gridFilterConfig": { "alias": "gridFilterConfig"; "required": false; }; "sortOrder": { "alias": "sortOrder"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "data": { "alias": "data"; "required": false; }; "filterDefinitions": { "alias": "filterDefinitions"; "required": false; }; "userFiltersList": { "alias": "userFiltersList"; "required": false; }; "dateFormat": { "alias": "dateFormat"; "required": false; }; "maxPinnedColumns": { "alias": "maxPinnedColumns"; "required": false; }; "errorInlineMode": { "alias": "errorInlineMode"; "required": false; }; "gridMiscellaneousData": { "alias": "gridMiscellaneousData"; "required": false; }; }, { "lazyLoad": "lazyLoad"; "columnsChange": "columnsChange"; "editComplete": "editComplete"; "editChange": "editChange"; "bulkDelete": "bulkDelete"; "selectAllPages": "selectAllPages"; "cellClicked": "cellClicked"; "createClicked": "createClicked"; "refreshData": "refreshData"; "showTrash": "showTrash"; "actionButtonClicked": "actionButtonClicked"; "excludeItem": "excludeItem"; }, never, never, false, never>;
}

declare class AvatarComponent {
    height: string;
    width: string;
    static ɵfac: i0.ɵɵFactoryDeclaration<AvatarComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AvatarComponent, "lib-avatar", never, { "height": { "alias": "height"; "required": false; }; "width": { "alias": "width"; "required": false; }; }, {}, never, never, true, never>;
}

declare class TextHighlightDirective {
    private el;
    private libTextHighlightSignal;
    private searchTextSignal;
    set libTextHighlight(value: string);
    set searchText(value: string);
    constructor(el: ElementRef<HTMLElement>);
    static ɵfac: i0.ɵɵFactoryDeclaration<TextHighlightDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TextHighlightDirective, "[libTextHighlight]", never, { "libTextHighlight": { "alias": "libTextHighlight"; "required": false; }; "searchText": { "alias": "searchText"; "required": false; }; }, {}, never, never, true, never>;
}

declare class GridModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<GridModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<GridModule, [typeof GridComponent], [typeof ButtonsModule, typeof i2.CommonModule, typeof i8.HttpClientModule, typeof ColumnManagementModalModule, typeof i3$1.DragDropModule, typeof FormFieldModule, typeof i4.FormsModule, typeof i4$4.MatDialogModule, typeof i10$3.PaginatorModule, typeof PipeModule, typeof i12$1.TableModule, typeof i4.ReactiveFormsModule, typeof SearchBarModule, typeof TooltipModule, typeof TypeaheadFieldModule, typeof i4$1.TranslateModule, typeof i7.MatButtonModule, typeof i18.ButtonModule, typeof i13.MatIconModule, typeof ButtonsModule, typeof DashedCheckboxModule, typeof i14.MatMenuModule, typeof i10$2.MenuModule, typeof GridToolbarModule, typeof AvatarComponent, typeof TextHighlightDirective], [typeof GridComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<GridModule>;
}

declare enum ImageUploadActions {
    firstVisit = 0,
    revisit = 1,
    posRetention = 2
}
declare class ImageUploadModalComponent implements OnInit {
    private popupModalService;
    private imageCompress;
    private cdr;
    enableFaceCheck: boolean;
    enableNsfwCheck: boolean;
    cropped: EventEmitter<ICroppedImageModel[]>;
    faceChecked: EventEmitter<ICroppedImageModel[]>;
    sizeChecked: EventEmitter<ICroppedImageModel[]>;
    selectedImageIndex: number;
    currImageIndex: number;
    selectedImageBase64: string;
    croppedImages: ICroppedImageModel[];
    aspectRatio: number;
    allImagesCropped: boolean;
    allImagesValid: boolean;
    showCropper: boolean;
    cropperLoaded: boolean;
    fullImageData: ImageModel[];
    imageAttributeMap: boolean[];
    faceCheckMap: boolean[];
    nsfwCheckMap: boolean[];
    faceChecker: ((image: string) => Observable<boolean>) | null;
    nsfwChecker: ((image: string) => Observable<boolean>) | null;
    maxNumOfImages: number;
    title: string;
    currentCroppedCoords: CropperPosition;
    selectedCropCoords: CropperPosition | undefined;
    validating: boolean;
    action: ImageUploadActions;
    private readonly twoMB;
    private imageCropperdata;
    get currentImage(): ImageModel | undefined;
    private get viewState();
    get footerValid(): boolean;
    get closeIlluminated(): boolean;
    get nextBtnDisabled(): boolean;
    get controlsDisabled(): boolean;
    get showSpinner(): boolean;
    get showValidationErrors(): boolean;
    get showFaceError(): boolean;
    get showNsfwError(): boolean;
    get showMaxWarning(): boolean;
    get navIcon(): string;
    isSelected(index: number): boolean;
    isDisabledVisual(index: number): boolean;
    isDeactivated(index: number): boolean;
    imageDeactivationToggleIcon: string;
    constructor(data: ImageCropperModel, popupModalService: PopupModalService, imageCompress: NgxImageCompressService, cdr: ChangeDetectorRef);
    ngOnInit(): void;
    onClose(): void;
    /**
     * handle image cropped event
     * @param event
     */
    imageCropped(event: ImageCroppedEvent): void;
    private doNsfwAndFaceCheck;
    updateValidationResult(invalidity: boolean): void;
    /**
     * on cropper ready
     */
    cropperReady(): void;
    /**
     * on image Loaded
     */
    imageLoaded(): void;
    /**
     * select image to display in the image cropper
     * @param index
     */
    selectImg(index: number): void;
    /**
     * on click continue || finish button
     */
    stepNextImage(): void;
    stepPreviousImage(): void;
    deactivateImage(): void;
    invalidateAllImages(): void;
    complete(): void;
    private imageSizeValidation;
    private imageNameValidation;
    private faceValidation;
    private nsfwValidation;
    private isPassedCheck;
    private checkAllImagesValid;
    /**
     * initialize the image cropper
     * @param data
     * @private
     */
    private intImagesCropper;
    static ɵfac: i0.ɵɵFactoryDeclaration<ImageUploadModalComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ImageUploadModalComponent, "lib-image-upload-modal", never, { "enableFaceCheck": { "alias": "enableFaceCheck"; "required": false; }; "enableNsfwCheck": { "alias": "enableNsfwCheck"; "required": false; }; }, { "cropped": "cropped"; "faceChecked": "faceChecked"; "sizeChecked": "sizeChecked"; }, never, never, false, never>;
}

declare class ImageTmpltComponent {
    disabled: boolean;
    src: string;
    static ɵfac: i0.ɵɵFactoryDeclaration<ImageTmpltComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ImageTmpltComponent, "lib-image-tmplt", never, { "disabled": { "alias": "disabled"; "required": false; }; "src": { "alias": "src"; "required": false; }; }, {}, never, never, false, never>;
}

declare class SharedImageCropperModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<SharedImageCropperModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<SharedImageCropperModule, [typeof ImageUploadModalComponent, typeof ImageTmpltComponent], [typeof i2.CommonModule, typeof i3.IonicModule, typeof i5$2.ImageCropperComponent, typeof i7.MatButtonModule, typeof i13.MatIconModule, typeof i4$1.TranslateModule, typeof LibModalModule, typeof ButtonsModule], [typeof ImageUploadModalComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<SharedImageCropperModule>;
}

declare class ImageDeckComponent implements AfterViewInit, OnChanges, OnDestroy {
    private cdr;
    private el;
    images: string[];
    activeIndex: number;
    activeIndexChange: EventEmitter<number>;
    fadeIn: boolean;
    private middleX;
    private isTransitioning;
    private transitionTimeout;
    private resizeObserver;
    private internalActiveIndex;
    constructor(cdr: ChangeDetectorRef, el: ElementRef);
    ngAfterViewInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    private updateMiddleX;
    handleSwitchImage(event: MouseEvent): void;
    setActiveImage(index: number): void;
    /**
     * Gets the current active image index.
     * @returns The index of the currently active image
     */
    get currentActiveIndex(): number;
    static ɵfac: i0.ɵɵFactoryDeclaration<ImageDeckComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ImageDeckComponent, "lib-image-deck", never, { "images": { "alias": "images"; "required": false; }; "activeIndex": { "alias": "activeIndex"; "required": false; }; }, { "activeIndexChange": "activeIndexChange"; }, never, ["*"], true, never>;
}

declare class InfoCardPlaceholderComponent {
    avatar: boolean;
    count: number;
    static ɵfac: i0.ɵɵFactoryDeclaration<InfoCardPlaceholderComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<InfoCardPlaceholderComponent, "lib-info-card-placeholder", never, { "avatar": { "alias": "avatar"; "required": false; }; "count": { "alias": "count"; "required": false; }; }, {}, never, never, false, never>;
}

declare class InfoCardPlaceholderModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<InfoCardPlaceholderModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<InfoCardPlaceholderModule, [typeof InfoCardPlaceholderComponent], [typeof i2.CommonModule], [typeof InfoCardPlaceholderComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<InfoCardPlaceholderModule>;
}

declare class DurationPickerComponent implements OnInit, OnChanges {
    private readonly cd;
    label: string;
    /** Legacy: kept for backward compatibility but ignored in the new UI. Use maxDurationHours instead. */
    maxDurationDays: number;
    /** Cap for the hours stepper. Default 16 hours. */
    maxDurationHours: number;
    startDate: Date | null;
    endDate: Date | null;
    showTime: boolean;
    disabled: boolean;
    minuteIncrement: number;
    defaultStartHour: number;
    startDateChange: EventEmitter<Date | null>;
    endDateChange: EventEmitter<Date | null>;
    durationChange: EventEmitter<{
        start: Date | null;
        end: Date | null;
        days: number;
        hours: number;
    }>;
    selectedDate: Date | null;
    durationHours: number;
    durationLabel: string;
    validationMessage: string;
    minDate: Date;
    constructor(cd: ChangeDetectorRef);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    onDateChange(event: {
        selectedDates: Date[];
        dateString: string;
        instance: Instance;
    }): void;
    incrementHours(): void;
    decrementHours(): void;
    private computeAndEmitEnd;
    private syncFromInputs;
    private buildDurationLabel;
    private emitDuration;
    static ɵfac: i0.ɵɵFactoryDeclaration<DurationPickerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DurationPickerComponent, "lib-duration-picker", never, { "label": { "alias": "label"; "required": false; }; "maxDurationDays": { "alias": "maxDurationDays"; "required": false; }; "maxDurationHours": { "alias": "maxDurationHours"; "required": false; }; "startDate": { "alias": "startDate"; "required": false; }; "endDate": { "alias": "endDate"; "required": false; }; "showTime": { "alias": "showTime"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "minuteIncrement": { "alias": "minuteIncrement"; "required": false; }; "defaultStartHour": { "alias": "defaultStartHour"; "required": false; }; }, { "startDateChange": "startDateChange"; "endDateChange": "endDateChange"; "durationChange": "durationChange"; }, never, never, false, never>;
}

declare class DurationPickerModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<DurationPickerModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<DurationPickerModule, [typeof DurationPickerComponent], [typeof i2.CommonModule, typeof i4.FormsModule, typeof i4$6.FlatpickrDirective], [typeof DurationPickerComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<DurationPickerModule>;
}

declare class ScanPillComponent implements OnChanges {
    promptInput: ElementRef<HTMLInputElement>;
    count: number;
    minCount: number;
    maxCount: number;
    placeholder: string;
    loading: boolean;
    disabled: boolean;
    countLabel: string;
    iconType: 'gem' | 'activity';
    /**
     * When the parent selects a city from the autocomplete dropdown it sets this input
     * so the pill's text field reflects the selected label without triggering another
     * promptChange emission (which would re-run the search).
     */
    value: string | null;
    /**
     * When true, the execute (lightning bolt) button is lit and enabled.
     * Must only become true after the user selects a geocoded option from the dropdown
     * — not just when text is typed. Defaults to false so the button stays gray/disabled
     * until a valid geocoded city selection is confirmed.
     */
    citySelected: boolean;
    /**
     * Shows an inline loading spinner inside the prompt bar while the geocode
     * autocomplete results are being fetched. Appears to the left of the lightning bolt.
     */
    geocodingLoading: boolean;
    countChange: EventEmitter<number>;
    execute: EventEmitter<string>;
    /** Emits on every keystroke in the prompt input so parents can drive autocomplete dropdowns. */
    promptChange: EventEmitter<string>;
    /** Forwards keydown events from the prompt input so parents can handle dropdown navigation. */
    promptKeydown: EventEmitter<KeyboardEvent>;
    /** Emits when the prompt input loses focus so parents can hide dropdowns with a delay. */
    promptBlur: EventEmitter<void>;
    promptText: string;
    ngOnChanges(changes: SimpleChanges): void;
    incrementCount(): void;
    decrementCount(): void;
    clampCount(): void;
    onCountInput(event: Event): void;
    focusPrompt(): void;
    get canExecute(): boolean;
    onExecute(): void;
    onPromptInput(): void;
    onKeydown(event: KeyboardEvent): void;
    onPromptBlur(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ScanPillComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ScanPillComponent, "lib-scan-pill", never, { "count": { "alias": "count"; "required": false; }; "minCount": { "alias": "minCount"; "required": false; }; "maxCount": { "alias": "maxCount"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "countLabel": { "alias": "countLabel"; "required": false; }; "iconType": { "alias": "iconType"; "required": false; }; "value": { "alias": "value"; "required": false; }; "citySelected": { "alias": "citySelected"; "required": false; }; "geocodingLoading": { "alias": "geocodingLoading"; "required": false; }; }, { "countChange": "countChange"; "execute": "execute"; "promptChange": "promptChange"; "promptKeydown": "promptKeydown"; "promptBlur": "promptBlur"; }, never, never, false, never>;
}

declare class ScanPillModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<ScanPillModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<ScanPillModule, [typeof ScanPillComponent], [typeof i2.CommonModule, typeof i4.FormsModule], [typeof ScanPillComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<ScanPillModule>;
}

declare enum JsonEditorMode {
    TREE = "tree",
    TEXT = "text"
}

type JsonPrimitive = string | number | boolean | null;
type JsonObject = {
    [key: string]: JsonValue;
};
type JsonArray = JsonValue[];
type JsonValue = JsonPrimitive | JsonObject | JsonArray;
type EditorContent = {
    json?: unknown;
    text?: string;
};

interface IMenuItem {
    text: string;
    title: string;
    className: string;
    click: () => void;
}
interface ITreeNode {
    path: (string | number)[];
}
interface IJSONEditorInterface {
    destroy: () => void;
    updateProps: (props: Record<string, unknown>) => void;
    get: () => EditorContent;
}

declare class LibJsonEditorComponent implements AfterViewInit, OnChanges, OnDestroy {
    data: JsonValue | null;
    expandAll: boolean;
    mode: JsonEditorMode;
    search: boolean;
    mainMenuBar: boolean;
    language: string;
    dataChange: EventEmitter<JsonValue>;
    editorContainer: ElementRef;
    private editor;
    ngAfterViewInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    customizeMenu(items: IMenuItem[], node: ITreeNode): IMenuItem[];
    private initializeEditor;
    private updateEditorContent;
    private updateEditorProps;
    private getContent;
    private destroyEditor;
    static ɵfac: i0.ɵɵFactoryDeclaration<LibJsonEditorComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<LibJsonEditorComponent, "lib-json-editor", never, { "data": { "alias": "data"; "required": false; }; "expandAll": { "alias": "expandAll"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "search": { "alias": "search"; "required": false; }; "mainMenuBar": { "alias": "mainMenuBar"; "required": false; }; "language": { "alias": "language"; "required": false; }; }, { "dataChange": "dataChange"; }, never, never, false, never>;
}

declare class LibJsonEditorModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<LibJsonEditorModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<LibJsonEditorModule, [typeof LibJsonEditorComponent], [typeof i2.CommonModule], [typeof LibJsonEditorComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<LibJsonEditorModule>;
}

declare class ListItemModel {
    title?: string;
    label?: string;
    labelIconUrl?: string;
    labelIconName?: string;
    value?: string;
    actionName?: string;
    cssClass?: string;
    disabled?: boolean;
    checked?: boolean;
    command?: (event?: ListItemModel) => void;
}

declare class ListToggleComponent {
    listItems: ListItemModel[];
    listTitle: string;
    disableTranslation: boolean;
    loading: boolean;
    libListItemToggle: HTMLElement;
    /**
     * on list item clicked
     * @param item
     */
    onListItemClick(item: ListItemModel): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ListToggleComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ListToggleComponent, "lib-list-toggle", never, { "listItems": { "alias": "listItems"; "required": false; }; "listTitle": { "alias": "listTitle"; "required": false; }; "disableTranslation": { "alias": "disableTranslation"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; }, {}, never, never, false, never>;
}

declare class ListComponent {
    listItems: ListItemModel[];
    hideMenuIcon: boolean;
    listTitle: string;
    disableTranslation: boolean;
    /**
     * on list item clicked
     * @param item
     */
    onListItemClick(item: ListItemModel): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ListComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ListComponent, "lib-list", never, { "listItems": { "alias": "listItems"; "required": false; }; "hideMenuIcon": { "alias": "hideMenuIcon"; "required": false; }; "listTitle": { "alias": "listTitle"; "required": false; }; "disableTranslation": { "alias": "disableTranslation"; "required": false; }; }, {}, never, never, false, never>;
}

declare class ListModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<ListModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<ListModule, [typeof ListComponent, typeof ListToggleComponent], [typeof i2.CommonModule, typeof i4$1.TranslateModule, typeof i13.MatIconModule, typeof i13$1.MatRippleModule, typeof i4$1.TranslateModule, typeof ToggleModule], [typeof ListComponent, typeof ListToggleComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<ListModule>;
}

declare class LocationSuggestionPanelComponent implements OnInit, OnDestroy {
    private cdr;
    private mapService;
    selectedLocation: IPosition;
    locationFormControl: FormControl<string>;
    showSearchBar: boolean;
    placesTitleTranslationKey: string;
    locationChange: EventEmitter<IPosition>;
    mapOptions: google.maps.MapOptions;
    places: IPlace[];
    private componentDestroyed$;
    constructor(cdr: ChangeDetectorRef, mapService: MapService);
    ngOnInit(): void;
    ngOnDestroy(): void;
    centerMap(): void;
    onPlaceClick(place: IPlace): void;
    onLocationChange(value: ILocationModel): void;
    onMapActionEvent(mapActionEvent: IMapActionEvent): void;
    private intializePlacesSection;
    private findNearByPlaces;
    private updateMap;
    static ɵfac: i0.ɵɵFactoryDeclaration<LocationSuggestionPanelComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<LocationSuggestionPanelComponent, "lib-location-suggestion-panel", never, { "selectedLocation": { "alias": "selectedLocation"; "required": true; }; "locationFormControl": { "alias": "locationFormControl"; "required": false; }; "showSearchBar": { "alias": "showSearchBar"; "required": false; }; "placesTitleTranslationKey": { "alias": "placesTitleTranslationKey"; "required": false; }; }, { "locationChange": "locationChange"; }, never, never, true, never>;
}

declare class MapLibService {
    private readonly http;
    private config;
    private awsLocationClient;
    /**
     * Initialize the map-lib service with configuration
     */
    initialize(config: IMapLibConfig): void;
    /**
     * Get the current map provider
     */
    getProvider(): MapProvider | null;
    /**
     * Find nearby places using the configured provider (AWS Location Service or TripAdvisor)
     */
    findNearbyPlaces(query: IPlaceQuery): Observable<IPlace[]>;
    /**
     * Get coordinates from address using AWS Location Service
     */
    getCoordinatesFromAddress(address: string): Observable<{
        lat: number;
        lng: number;
    }>;
    /**
     * Get address from coordinates using AWS Location Service
     */
    getAddressFromCoordinates(location: IPosition): Observable<string>;
    /**
     * Find nearby places using AWS Location Service
     */
    private findNearbyPlacesAWS;
    /**
     * Find nearby places using TripAdvisor API
     */
    private findNearbyPlacesTripAdvisor;
    /**
     * Get AWS Location Service signer for map tiles
     * Note: Signer implementation should be done using @aws/amazon-location-utilities-auth-helper
     * This method returns configuration for signer usage
     */
    getAWSSignerConfig(): {
        region: string;
        identityPoolId: string;
    } | null;
    static ɵfac: i0.ɵɵFactoryDeclaration<MapLibService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<MapLibService>;
}

declare const MAP_CIRCLE_RADIUS_KMS: number;
declare const MAP_STYLES: google.maps.MapTypeStyle[] | null;
declare const DEFAULT_POSITION: IPosition;
declare const DEFAULT_MAP_OPTIONS: google.maps.MapOptions;
declare const MARKER_OPTIONS: google.maps.MarkerOptions;
declare const MARKER_OPTIONS_ENABLE_DRAG: google.maps.MarkerOptions;
declare const CIRCLE_OPTIONS: google.maps.CircleOptions;
declare const MAP_ZOOM_POSITION: {
    1: number;
    2: number;
    3: number;
    4: number;
    5: number;
    6: number;
    7: number;
    8: number;
    9: number;
    10: number;
    11: number;
    12: number;
    13: number;
    14: number;
    15: number;
    16: number;
    17: number;
    18: number;
    19: number;
    20: number;
    21: number;
    22: number;
};

declare class MarqueeComponent implements OnChanges, AfterViewInit, OnDestroy {
    private cdr;
    private el;
    titleContent: ElementRef<HTMLElement>;
    continuousContent: ElementRef<HTMLElement>;
    title: string;
    searchText: string;
    padding: number;
    onlyMarqueeOnHover: boolean;
    marquee: EventEmitter<boolean>;
    isMarqueeActive: boolean;
    showContinuous: boolean;
    private primaryAnimation;
    private continuousAnimation;
    private isHovering;
    private readonly destroy$;
    private checkMarqueeSub;
    constructor(cdr: ChangeDetectorRef, el: ElementRef<HTMLElement>);
    ngOnChanges(changes: SimpleChanges): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    onResize(): void;
    onPointerEnter(): void;
    onPointerLeave(): void;
    private checkMarquee;
    private startAnimations;
    private stopAnimations;
    private setPlaybackRate;
    private getCSSVarAsSeconds;
    static ɵfac: i0.ɵɵFactoryDeclaration<MarqueeComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MarqueeComponent, "lib-marquee", never, { "title": { "alias": "title"; "required": false; }; "searchText": { "alias": "searchText"; "required": false; }; "padding": { "alias": "padding"; "required": false; }; "onlyMarqueeOnHover": { "alias": "onlyMarqueeOnHover"; "required": false; }; }, { "marquee": "marquee"; }, never, never, false, never>;
}

declare class LibMarqueeModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<LibMarqueeModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<LibMarqueeModule, [typeof MarqueeComponent], [typeof i2.CommonModule, typeof TextHighlightDirective], [typeof MarqueeComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<LibMarqueeModule>;
}

declare const MODAL_DATA: InjectionToken<unknown>;

declare class MultiColoredTextComponent {
    text: string;
    class: string;
    static ɵfac: i0.ɵɵFactoryDeclaration<MultiColoredTextComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MultiColoredTextComponent, "lib-multi-colored-text", never, { "text": { "alias": "text"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, never, false, never>;
}

declare class MultiColoredTextModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<MultiColoredTextModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<MultiColoredTextModule, [typeof MultiColoredTextComponent], [typeof i2.CommonModule], [typeof MultiColoredTextComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<MultiColoredTextModule>;
}

declare enum NotificationBannerType {
    Success = "success",
    Error = "error",
    Warn = "warn"
}

declare class NotificationBannerComponent implements OnInit, OnDestroy {
    private changeDetectorRef;
    display: boolean;
    private timeout?;
    message: string;
    bannerType: string;
    private componentDestroyed$;
    notification$: Observable<{
        message: string;
        type: NotificationBannerType;
    }>;
    constructor(changeDetectorRef: ChangeDetectorRef);
    ngOnInit(): void;
    ngOnDestroy(): void;
    private setTimedDisplay;
    hide(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NotificationBannerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NotificationBannerComponent, "lib-notification-banner", never, { "notification$": { "alias": "notification$"; "required": false; }; }, {}, never, never, false, never>;
}

declare class NotificationBannerModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<NotificationBannerModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<NotificationBannerModule, [typeof NotificationBannerComponent], [typeof i2.CommonModule], [typeof NotificationBannerComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<NotificationBannerModule>;
}

declare enum NotificationStatuses {
    NEW = "New",
    EARLIER = "Earlier"
}

declare enum NotificationSwipes {
    RIGHT = "right",
    LEFT = "left"
}

interface INotificationActivity {
    id: string;
    swipe: NotificationSwipes;
    isButtonClick?: boolean;
}

/**
 * Interface representing an icon within a notification.
 */
interface INotificationIcon {
    /** URL link associated with the icon */
    link: string;
}

interface INotificationItem {
    _id: string;
    text: string;
    timestamp: Date;
    icons: [INotificationIcon, INotificationIcon?];
    type?: 'Info' | 'Actionable';
    itinerary?: string;
    prospect?: string;
}

interface INotificationsList {
    status: NotificationStatuses;
    items: INotificationItem[];
    date?: string;
}

interface INotificationSimple {
    _id: string;
    status: NotificationStatuses;
    timestamp: Date;
    text: string;
    icons: [INotificationIcon, INotificationIcon?];
    type?: 'Info' | 'Actionable';
    itinerary?: string;
    prospect?: string;
}

declare class NotificationsListComponent implements AfterViewInit, OnDestroy, OnChanges {
    private cardElements;
    /** List of notifications to display */
    notifications: INotificationsList[];
    /** Controls the loading state of the notifications list */
    isLoading: boolean;
    /** Emits when a notification is clicked */
    notificationClicked: EventEmitter<INotificationItem>;
    notificationAccepted: EventEmitter<INotificationItem>;
    notificationSwipe: EventEmitter<INotificationActivity>;
    NotificationStatuses: typeof NotificationStatuses;
    private gestureCtrl;
    private cdr;
    gestures: Gesture[];
    componentDestroyed$: Subject<void>;
    removingNotificationIds: Set<string>;
    swipingNotificationIds: Set<string>;
    clickedNotificationIds: Set<string>;
    private notificationClickPrevented;
    ngAfterViewInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    handleClick(notification: INotificationItem): void;
    handleDeleteClick(notificationId: string, event: Event): void;
    handleAcceptClick(notification: INotificationItem, event: Event): void;
    private setupGestures;
    private cleanupGestures;
    static ɵfac: i0.ɵɵFactoryDeclaration<NotificationsListComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NotificationsListComponent, "lib-notifications-list", never, { "notifications": { "alias": "notifications"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; }, { "notificationClicked": "notificationClicked"; "notificationAccepted": "notificationAccepted"; "notificationSwipe": "notificationSwipe"; }, never, never, true, never>;
}

declare class NotificationsService {
    transformNotificationsSimpleIntoList(notifications: INotificationSimple[]): INotificationsList[];
    updateNotificationsList(notifications: INotificationsList[]): INotificationsList[];
    insertNotificationIntoLists(existingLists: INotificationsList[], newNotification: INotificationSimple): INotificationsList[];
    countTotalNotifications(notifications: INotificationsList[]): number;
    removeNotificationFromLists(notifications: INotificationsList[], notificationId: string): INotificationsList[];
    static ɵfac: i0.ɵɵFactoryDeclaration<NotificationsService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<NotificationsService>;
}

declare class LibPercentageBarComponent {
    value: number;
    static ɵfac: i0.ɵɵFactoryDeclaration<LibPercentageBarComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<LibPercentageBarComponent, "lib-percentage-bar", never, { "value": { "alias": "value"; "required": false; }; }, {}, never, ["*"], false, never>;
}

declare class LibPercentageBarModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<LibPercentageBarModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<LibPercentageBarModule, [typeof LibPercentageBarComponent], [typeof i2.CommonModule], [typeof LibPercentageBarComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<LibPercentageBarModule>;
}

declare class DragAndDropComponent$1 extends ImageBaseComponent implements OnInit, OnDestroy {
    private imageCompress;
    private imageCropper;
    showOutLine: boolean;
    dragOutline: ElementRef;
    constructor(imageCompress: NgxImageCompressService, imageCropper: ImageCropperService);
    ngOnInit(): void;
    ngOnDestroy(): void;
    preventDefault(event: DragEvent): void;
    setDragAndDrop(): void;
    showOutline(event: DragEvent): void;
    hideOutline(event: DragEvent): void;
    receiveDroppedFiles(event: DragEvent): Promise<void>;
    private readFiles;
    readFile(file: File): Promise<ImageModel>;
    static ɵfac: i0.ɵɵFactoryDeclaration<DragAndDropComponent$1, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DragAndDropComponent$1, "lib-drag-and-drop", never, { "showOutLine": { "alias": "showOutLine"; "required": false; }; }, {}, never, ["*"], false, never>;
}

declare class DragAndDropModule$1 {
    static ɵfac: i0.ɵɵFactoryDeclaration<DragAndDropModule$1, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<DragAndDropModule$1, [typeof DragAndDropComponent$1], [typeof i2.CommonModule, typeof ImageBaseModule], [typeof DragAndDropComponent$1]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<DragAndDropModule$1>;
}

interface ILargeFileWarningParams {
    icon: string;
    confirmButton: string;
    cancelButton: string;
    title: string;
    message: string;
}

declare class PictureGalleryComponent implements OnInit, OnDestroy {
    private cdr;
    private imageCompress;
    modalFactoryService: PopupModalService;
    private imageCropperService;
    maxNumOfPhotos: number;
    photos: ImageModel[];
    slotsPerRow: number;
    gridGap: number;
    enableDragAndDrop: boolean;
    infoIcon: string;
    largeFileUploadWarningParams: ILargeFileWarningParams;
    photoAspectRatio: number;
    enableNsfwCheck: boolean;
    enableFaceCheck: boolean;
    compressRatio: number;
    compressQuality: number;
    faceDetector: (images: string) => Observable<boolean>;
    nsfwChecker: (images: string) => Observable<boolean>;
    photosUpload: EventEmitter<ImageModel[]>;
    photosDelete: EventEmitter<ImageModel[]>;
    photoUploadFail: EventEmitter<string>;
    dupPhotosDetect: EventEmitter<number>;
    unsupportedFormatsDetect: EventEmitter<string[]>;
    maxUploadLimitExceeded: EventEmitter<null>;
    dragOutline: ElementRef;
    skeletonLoaders: boolean[];
    imageBeingLoaded: boolean;
    imageBeingProcessed: ImageModel;
    private imageFiles;
    private croppedImages;
    private readonly twoMegabytes;
    private imageSizeMap;
    destroy$: Subject<void>;
    constructor(cdr: ChangeDetectorRef, imageCompress: NgxImageCompressService, modalFactoryService: PopupModalService, imageCropperService: ImageCropperService);
    ngOnInit(): void;
    ngOnDestroy(): void;
    selectImage(): void;
    handleImages(imageFiles: ImageModel[]): Promise<void>;
    private compressImage;
    removeImage(index: number): void;
    private updateView;
    private parseUploadedImages;
    private processCompressedImage;
    private emitUploadedPhotos;
    static ɵfac: i0.ɵɵFactoryDeclaration<PictureGalleryComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<PictureGalleryComponent, "lib-picture-gallery", never, { "maxNumOfPhotos": { "alias": "maxNumOfPhotos"; "required": false; }; "photos": { "alias": "photos"; "required": false; }; "slotsPerRow": { "alias": "slotsPerRow"; "required": false; }; "gridGap": { "alias": "gridGap"; "required": false; }; "enableDragAndDrop": { "alias": "enableDragAndDrop"; "required": false; }; "infoIcon": { "alias": "infoIcon"; "required": false; }; "largeFileUploadWarningParams": { "alias": "largeFileUploadWarningParams"; "required": false; }; "photoAspectRatio": { "alias": "photoAspectRatio"; "required": false; }; "enableNsfwCheck": { "alias": "enableNsfwCheck"; "required": false; }; "enableFaceCheck": { "alias": "enableFaceCheck"; "required": false; }; "compressRatio": { "alias": "compressRatio"; "required": false; }; "compressQuality": { "alias": "compressQuality"; "required": false; }; "faceDetector": { "alias": "faceDetector"; "required": false; }; "nsfwChecker": { "alias": "nsfwChecker"; "required": false; }; }, { "photosUpload": "photosUpload"; "photosDelete": "photosDelete"; "photoUploadFail": "photoUploadFail"; "dupPhotosDetect": "dupPhotosDetect"; "unsupportedFormatsDetect": "unsupportedFormatsDetect"; "maxUploadLimitExceeded": "maxUploadLimitExceeded"; }, never, never, false, never>;
}

declare class DragAndDropComponent implements OnInit, OnDestroy {
    dragOutline: ElementRef;
    showOutLine: boolean;
    fileRecieved: EventEmitter<ImageModel[]>;
    ngOnInit(): void;
    ngOnDestroy(): void;
    preventDefault(event: Event): void;
    setDragAndDrop(): void;
    showOutline(event: DragEvent): void;
    hideOutline(event: DragEvent): void;
    recieveDroppedFiles(event: DragEvent): Promise<void>;
    private readFiles;
    readFile(file: File): Promise<ImageModel>;
    static ɵfac: i0.ɵɵFactoryDeclaration<DragAndDropComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DragAndDropComponent, "lib-drag-and-drop", never, { "showOutLine": { "alias": "showOutLine"; "required": false; }; }, { "fileRecieved": "fileRecieved"; }, never, ["*"], false, never>;
}

declare class DragAndDropModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<DragAndDropModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<DragAndDropModule, [typeof DragAndDropComponent], [typeof i2.CommonModule], [typeof DragAndDropComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<DragAndDropModule>;
}

declare class PhotoUploadModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<PhotoUploadModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<PhotoUploadModule, [typeof PictureGalleryComponent], [typeof i2.CommonModule, typeof i3.IonicModule, typeof i13.MatIconModule, typeof ImageCardModule, typeof DragAndDropModule], [typeof PictureGalleryComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<PhotoUploadModule>;
}

interface IRouteParams {
    key: string;
    value: string;
    stepStart?: boolean;
    pageTitle?: string;
    previewThumbnail?: string;
    subRoutes?: IRouteParams[];
}

declare class PreviewWindowComponent implements OnInit, OnDestroy {
    thumbnail: ElementRef;
    progressBar: ElementRef;
    stepWeight: number;
    routes: IRouteParams[];
    includeSteps: boolean;
    includeStepsCount: boolean;
    progress: number;
    availableFarthestProgress: number;
    farthestProgress: number;
    canContinue$: Observable<boolean>;
    router: {
        routeToNextPage: (user: {}, storage: boolean, url: string) => void;
        routeBackinRegistrationFlow: (url: string) => void;
        shouldINavigateOnClick?: (url: string) => boolean;
        routeToPage?: (url: string) => void;
    };
    private el;
    thumbnailUrl: string;
    displayThumbnail$: BehaviorSubject<boolean>;
    selectedRoute: IRouteParams;
    initialStepIndex: number;
    private isTouchEvent;
    private unsubscribeAll;
    private currentRoute;
    private currentProgress;
    private get previewTab();
    ngOnInit(): void;
    onDocumentMouseUp(event: MouseEvent): void;
    private preloadThumbnails;
    ngOnDestroy(): void;
    private getStepIndexFromTouch;
    onTouchStart(event: TouchEvent, regRoute: IRouteParams, index: number): void;
    onTouchMove(event: TouchEvent, regRoute: IRouteParams, index: number): void;
    showThumbnail(event: MouseEvent | TouchEvent): void;
    adoptElement(event: MouseEvent | TouchEvent, selectedRoute: IRouteParams): void;
    onThumbnailClick(): void;
    navigateOnClick(url: string, progress: number): void;
    navigatePreview(): void;
    onTouchEnd(event: TouchEvent, regRoute: IRouteParams, index: number): void;
    navigateOnClickSubRoute(event: MouseEvent, url: string): void;
    subRouteMouseMove(event: MouseEvent | TouchEvent): void;
    onClick(event: MouseEvent, key: string, weight: number): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<PreviewWindowComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<PreviewWindowComponent, "lib-preview-window", never, { "stepWeight": { "alias": "stepWeight"; "required": false; }; "routes": { "alias": "routes"; "required": false; }; "includeSteps": { "alias": "includeSteps"; "required": false; }; "includeStepsCount": { "alias": "includeStepsCount"; "required": false; }; "progress": { "alias": "progress"; "required": false; }; "availableFarthestProgress": { "alias": "availableFarthestProgress"; "required": false; }; "farthestProgress": { "alias": "farthestProgress"; "required": false; }; "canContinue$": { "alias": "canContinue$"; "required": false; }; "router": { "alias": "router"; "required": false; }; }, {}, never, never, false, never>;
}

declare class PreviewWindowModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<PreviewWindowModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<PreviewWindowModule, [typeof PreviewWindowComponent], [typeof i2.CommonModule, typeof i4$1.TranslateModule, typeof PipeModule], [typeof PreviewWindowComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<PreviewWindowModule>;
}

declare class ProfileHeaderComponent {
    photo: string;
    name: string;
    leftIcon: any;
    rightIcon: any;
    leftText: string;
    rightText: string;
    orientation: string;
    static ɵfac: i0.ɵɵFactoryDeclaration<ProfileHeaderComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ProfileHeaderComponent, "lib-profile-header", never, { "photo": { "alias": "photo"; "required": false; }; "name": { "alias": "name"; "required": false; }; "leftIcon": { "alias": "leftIcon"; "required": false; }; "rightIcon": { "alias": "rightIcon"; "required": false; }; "leftText": { "alias": "leftText"; "required": false; }; "rightText": { "alias": "rightText"; "required": false; }; "orientation": { "alias": "orientation"; "required": false; }; }, {}, never, never, false, never>;
}

declare class ProfileHeaderModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<ProfileHeaderModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<ProfileHeaderModule, [typeof ProfileHeaderComponent], [typeof i2.CommonModule, typeof i3.IonicModule], [typeof ProfileHeaderComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<ProfileHeaderModule>;
}

interface IMasonrySize {
    mq?: string;
    columns: number;
    gutter: number;
}

declare class LibMasonryContainerComponent implements AfterViewChecked, OnChanges, OnDestroy {
    private zone;
    containerRef: ElementRef<HTMLElement>;
    sizes: IMasonrySize[];
    repackTrigger: unknown;
    private bricksInstance;
    private resizeObserver;
    private childResizeObserver;
    private mutationObserver;
    private needsRepack;
    private lastItemCount;
    private childResizeRaf;
    constructor(zone: NgZone);
    ngOnChanges(changes: SimpleChanges): void;
    ngAfterViewChecked(): void;
    ngOnDestroy(): void;
    private initBricks;
    private schedulePack;
    private setCardWidths;
    private getCurrentSize;
    static ɵfac: i0.ɵɵFactoryDeclaration<LibMasonryContainerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<LibMasonryContainerComponent, "lib-masonry-container", never, { "sizes": { "alias": "sizes"; "required": false; }; "repackTrigger": { "alias": "repackTrigger"; "required": false; }; }, {}, never, ["*"], false, never>;
}

declare class LibMasonryContainerModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<LibMasonryContainerModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<LibMasonryContainerModule, [typeof LibMasonryContainerComponent], [typeof i2.CommonModule], [typeof LibMasonryContainerComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<LibMasonryContainerModule>;
}

interface IPageLayoutFilterChip {
    label: string;
    value: string;
}

declare class ScrollPositionService {
    private positions;
    private _isBack;
    save(url: string, scrollTop: number): void;
    get(url: string): number | undefined;
    clear(url: string): void;
    clearAll(): void;
    markBackNavigation(): void;
    clearBackNavigation(): void;
    get isBack(): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<ScrollPositionService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ScrollPositionService>;
}

declare class SearchBarVisibilityService {
    readonly visible$: BehaviorSubject<boolean>;
    toggle(): void;
    setVisible(visible: boolean): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchBarVisibilityService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<SearchBarVisibilityService>;
}

/**
 * DEV NOTES:
 * - `GridFilterService.activeFilter` is a BehaviorSubject — tests must provide a mock
 *   with `activeFilter: new BehaviorSubject(null)` or the ngOnInit subscription crashes.
 * - Use `fixture.componentRef.setInput(...)` instead of direct property assignment so
 *   that `ngOnChanges` fires properly in tests.
 * - The `filterApplied` output was typed as `EventEmitter<any>` — now uses
 *   `EventEmitter<IFilterDataRequest>` for type safety.
 */
declare class LibPageLayoutComponent implements OnInit, OnChanges, OnDestroy, AfterViewInit {
    private gridFilterService;
    private cdr;
    private router;
    private scrollPositionService;
    private searchBarVisibility;
    tabs: MenuItem[];
    activeTab: MenuItem;
    showSearch: boolean;
    searchPlaceholder: string;
    searchIcon: string;
    filters: IPageLayoutFilterChip[];
    activeFilter: string;
    stretchTabs: boolean;
    disablePagination: boolean;
    centerTabs: boolean;
    activeTabChange: EventEmitter<MenuItem>;
    searchStringChange: EventEmitter<string>;
    filterApplied: EventEmitter<IFilterDataRequest>;
    filterChange: EventEmitter<string>;
    scrollContent?: ElementRef<HTMLElement>;
    private destroy$;
    effectiveShowSearch: boolean;
    constructor(gridFilterService: GridFilterService, cdr: ChangeDetectorRef, router: Router, scrollPositionService: ScrollPositionService, searchBarVisibility: SearchBarVisibilityService);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    onTabChange(item: MenuItem): void;
    onSearchStringChange(query: string): void;
    onFilterApplied(filterData: IFilterDataRequest): void;
    onFilterSelect(value: string): void;
    private registerStandardFilters;
    static ɵfac: i0.ɵɵFactoryDeclaration<LibPageLayoutComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<LibPageLayoutComponent, "lib-page-layout", never, { "tabs": { "alias": "tabs"; "required": false; }; "activeTab": { "alias": "activeTab"; "required": false; }; "showSearch": { "alias": "showSearch"; "required": false; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; }; "searchIcon": { "alias": "searchIcon"; "required": false; }; "filters": { "alias": "filters"; "required": false; }; "activeFilter": { "alias": "activeFilter"; "required": false; }; "stretchTabs": { "alias": "stretchTabs"; "required": false; }; "disablePagination": { "alias": "disablePagination"; "required": false; }; "centerTabs": { "alias": "centerTabs"; "required": false; }; }, { "activeTabChange": "activeTabChange"; "searchStringChange": "searchStringChange"; "filterApplied": "filterApplied"; "filterChange": "filterChange"; }, never, ["*"], false, never>;
}

declare class LibTabMenuComponent {
    items: MenuItem[];
    activeItem: MenuItem;
    stretchTabs: boolean;
    disablePagination: boolean;
    activeItemChange: EventEmitter<MenuItem>;
    activeItemChanged(item: MenuItem): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<LibTabMenuComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<LibTabMenuComponent, "lib-tab-menu", never, { "items": { "alias": "items"; "required": false; }; "activeItem": { "alias": "activeItem"; "required": false; }; "stretchTabs": { "alias": "stretchTabs"; "required": false; }; "disablePagination": { "alias": "disablePagination"; "required": false; }; }, { "activeItemChange": "activeItemChange"; }, never, never, false, never>;
}

declare class LibTabMenuModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<LibTabMenuModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<LibTabMenuModule, [typeof LibTabMenuComponent], [typeof i2.CommonModule, typeof i3$5.TabsModule, typeof i4$7.MatTabsModule, typeof i7.MatButtonModule, typeof i4$1.TranslateModule], [typeof LibTabMenuComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<LibTabMenuModule>;
}

declare class LibPageLayoutModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<LibPageLayoutModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<LibPageLayoutModule, [typeof LibPageLayoutComponent], [typeof i2.CommonModule, typeof i1.RouterModule, typeof DirectiveModule, typeof LibTabMenuModule, typeof GridFiltersModule], [typeof LibPageLayoutComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<LibPageLayoutModule>;
}

declare class PaginationResponse<T> {
    docs: T[];
    meta: {
        hasNextPage?: boolean;
        hasPrevPage?: boolean;
        limit?: number;
        nextPage?: number;
        page?: number;
        pagingCounter?: number;
        prevPage?: number;
        totalDocs: number;
        totalPages: number;
    };
}

declare enum InsightsViewType {
    GRID = "grid",
    CONTENT = "content"
}

/**
 * Subset of app icon maps used by the insights toolbar and 3-dot menu.
 * Implementations may supply a larger icon bundle; only these paths are required for the lib UI.
 */
interface IInsightsIcons {
    common?: {
        dotMenu?: string;
    };
    dashboard?: {
        insights?: {
            searchTool?: string;
            grid?: string;
            content?: string;
        };
    };
}

/** Insights tab strip item: route segment + i18n metadata. */
interface IInsightsTabMenuItem extends MenuItem {
    value: string;
    translateKey?: string;
}

declare enum Ranks {
    IronIV = "Iron IV",
    IronIII = "Iron III",
    IronII = "Iron II",
    IronI = "Iron I",
    BronzeIV = "Bronze IV",
    BronzeIII = "Bronze III",
    BronzeII = "Bronze II",
    BronzeI = "Bronze I",
    SilverIV = "Silver IV",
    SilverIII = "Silver III",
    SilverII = "Silver II",
    SilverI = "Silver I",
    GoldIV = "Gold IV",
    GoldIII = "Gold III",
    GoldII = "Gold II",
    GoldI = "Gold I",
    PlatinumIV = "Platinum IV",
    PlatinumIII = "Platinum III",
    PlatinumII = "Platinum II",
    PlatinumI = "Platinum I",
    DiamondIV = "Diamond IV",
    DiamondIII = "Diamond III",
    DiamondII = "Diamond II",
    DiamondI = "Diamond I",
    Master = "Master",
    GrandMaster = "Grandmaster",
    Challenger = "Challenger"
}

interface IBaseContentCard {
    _id: string;
    name: string;
    age: number;
    img: string;
    avatar: string;
}

interface IDashboardClientMatcher extends IBaseContentCard {
    locations: string[];
    msgsDate: number;
    matcherClientInterests: number;
    rank: Ranks;
    joinDate: Date;
    lifetimeEarn: number;
    rating: number;
    successRate: number;
    backgroundCheck: boolean;
    lifetimeMeetups: number;
    certifications: string[];
    superlatives: string[];
}

interface ILowerUpper {
    lower: number;
    upper: number;
}

interface IScoreSummary {
    celibacy: number;
    cooperation: number;
    intelligence: number;
    bust: number;
    waist: number;
    height: number;
}

interface IDashboardClientProspect extends IBaseContentCard {
    score: number;
    location: string;
    preferredWeight: ILowerUpper;
    preferredHeight: ILowerUpper;
    msgsDate: number;
    currentChats: number;
    lifetimeDates: number;
    goals: string[];
    scoreSummary: IScoreSummary;
    profileSummary: string[];
    interestLevel: number;
    match: {
        preferences: number;
        personality: number;
    };
    progress: number;
    showHandoff: boolean;
}

interface IDashboardClientRequest extends IBaseContentCard {
    locations: string[];
    fees: number;
    meetups: number;
    timeframe: number;
    msgsDate: number;
    acceptedDate: Date;
    options: string[];
    preferencesProfile?: number;
    preferencesProfileAvg?: number;
}

declare enum Polarity {
    Positive = "positive",
    Negative = "negative"
}

interface IPreferencesSummary extends IScoreSummary {
    celibacySign: Polarity;
    cooperationSign: Polarity;
    intelligenceSign: Polarity;
    moeBust: number;
    moeWaist: number;
    moeHeight: number;
}

interface IDashboardMatcherClient extends IBaseContentCard {
    location: string;
    msgsDate: number;
    preferencesProfile: number;
    lifetimeFee: number;
    preferredWeight: ILowerUpper;
    preferredHeight: ILowerUpper;
    communicationStyle: string;
    goal: string[];
    joinDate: Date;
    score: number;
    preferred: number;
    lifetimeMeetups: number;
    preferencesSummary: IPreferencesSummary;
    profileSummary: string[];
}

declare abstract class InsightsDataBridge {
    abstract readonly icons: IInsightsIcons;
    abstract readonly requests$: BehaviorSubject<PaginationResponse<IDashboardClientRequest>>;
    abstract readonly matchers$: BehaviorSubject<PaginationResponse<IDashboardClientMatcher>>;
    abstract readonly prospects$: BehaviorSubject<PaginationResponse<IDashboardClientProspect>>;
    abstract readonly clients$: BehaviorSubject<PaginationResponse<IDashboardMatcherClient>>;
    abstract initialize(matcherInsights: boolean, destroy$: Observable<void>, initialTab?: string): void;
    abstract fetchTabData(tab: string, matcherInsights: boolean, params?: {
        searchText: string;
        page?: number;
    }): void;
    abstract updateLayout(matcherInsights: boolean): void;
    abstract showError(title: string, message: string): void;
    abstract onDataLoaded(callback: () => void): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<InsightsDataBridge, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<InsightsDataBridge>;
}

/**
 * DEV NOTES:
 * - The real template's `lib-menu-btn [onlyCloseOnClickOutside]` binding causes NG0306
 *   (unknown property) under Jest/jsdom. Tests must use a template override that drops
 *   this binding while keeping `lib-page-layout`, `router-outlet`, and `#` template refs
 *   so ViewChild/ngAfterViewInit/menuItems still work.
 * - `InsightsDataBridge.onDataLoaded` is async — it calls `cb()` after a microtask.
 *   Tests need `await fixture.whenStable()` after triggering it.
 * - The icons object was typed as `any` which hid missing icon keys at compile time.
 *   Now typed as `IInsightsIcons` in the _interfaces folder.
 */
declare class LibInsightsComponent implements OnInit, AfterViewInit, OnDestroy {
    private bridge;
    private translateService;
    private cdr;
    private router;
    private route;
    private gridFilterService;
    insightGridViewMenuItem: TemplateRef<HTMLElement>;
    insightContentViewMenuItem: TemplateRef<HTMLElement>;
    insightsearchMenu: TemplateRef<HTMLElement>;
    matcherInsights: boolean;
    INSIGHTS_VIEW_TYPES: typeof InsightsViewType;
    selectedViewType: InsightsViewType;
    selectedTab: IInsightsTabMenuItem;
    icons: IInsightsIcons;
    expanded: boolean;
    insightsTabItems: IInsightsTabMenuItem[];
    menuItemFormControl: FormControl<InsightsViewType>;
    toggleSearchFormControl: FormControl<boolean>;
    menuItemCheckboxType: FormFieldType;
    menuItemRadioType: FormFieldType;
    menuItemOptions: SelectOption<InsightsViewType>[];
    menuItems: ILibMenuItem[];
    requests$: BehaviorSubject<PaginationResponse<IDashboardClientRequest>>;
    matchers$: BehaviorSubject<PaginationResponse<IDashboardClientMatcher>>;
    prospects$: BehaviorSubject<PaginationResponse<IDashboardClientProspect>>;
    clients$: BehaviorSubject<PaginationResponse<IDashboardMatcherClient>>;
    loading: boolean;
    searchText: string;
    filterChips: IPageLayoutFilterChip[];
    activeFilter: string;
    private componentDestroyed$;
    constructor(bridge: InsightsDataBridge, translateService: TranslateService, cdr: ChangeDetectorRef, router: Router, route: ActivatedRoute, gridFilterService: GridFilterService);
    ionViewWillEnter(): void;
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    onTabChangeFromLayout(item: MenuItem): void;
    onInsightViewMenuClick(insightViewType: InsightsViewType): void;
    toggleSearchForm(): void;
    onClickInsightMenu(event: MouseEvent): void;
    updateTabData(event: {
        searchText: string;
        page?: number;
    }): void;
    onFilterApplied(_filter: IFilterDataRequest): void;
    onFilterChange(value: string): void;
    private registerFilterDefinitions;
    static ɵfac: i0.ɵɵFactoryDeclaration<LibInsightsComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<LibInsightsComponent, "lib-insights", never, { "matcherInsights": { "alias": "matcherInsights"; "required": false; }; }, {}, never, never, false, never>;
}

declare enum MacherInsightsViewTab {
    Requests = "requests",
    Clients = "clients",
    Prospects = "prospects"
}

declare class BaseInsightsComponent implements OnDestroy {
    matcherInsights: boolean;
    loading: boolean;
    requests$: Observable<PaginationResponse<IDashboardClientRequest>>;
    matchers$: Observable<PaginationResponse<IDashboardClientMatcher>>;
    prospects$: Observable<PaginationResponse<IDashboardClientProspect>>;
    clients$: Observable<PaginationResponse<IDashboardMatcherClient>>;
    updateTabData: EventEmitter<{
        searchText: string;
        page?: number;
    }>;
    MATCHER_INSIGHTS_VIEW_TAB: typeof MacherInsightsViewTab;
    selectedTab: string;
    protected componentDestroyed$: Subject<void>;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<BaseInsightsComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<BaseInsightsComponent, "ng-component", never, { "matcherInsights": { "alias": "matcherInsights"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "requests$": { "alias": "requests$"; "required": false; }; "matchers$": { "alias": "matchers$"; "required": false; }; "prospects$": { "alias": "prospects$"; "required": false; }; "clients$": { "alias": "clients$"; "required": false; }; }, { "updateTabData": "updateTabData"; }, never, never, false, never>;
}

declare enum InsightsViewTab {
    Requests = "requests",
    Matchers = "matchers",
    Prospects = "prospects"
}

declare class AppClientContentCardsComponent extends BaseInsightsComponent {
    searchText: string;
    set tab(value: InsightsViewTab);
    INSIGHTS_VIEW_TAB: typeof InsightsViewTab;
    MATCHER_INSIGHTS_VIEW_TAB: typeof MacherInsightsViewTab;
    readonly masonrySizes: IMasonrySize[];
    static ɵfac: i0.ɵɵFactoryDeclaration<AppClientContentCardsComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AppClientContentCardsComponent, "app-client-content-cards", never, { "searchText": { "alias": "searchText"; "required": false; }; "tab": { "alias": "tab"; "required": false; }; }, {}, never, never, false, never>;
}

declare class AppClientGridComponent extends BaseInsightsComponent implements OnInit {
    private cdr;
    hideToolbar: boolean;
    set tab(value: string);
    data: IGridRow<IDashboardClientRequest | IDashboardClientMatcher | IDashboardClientProspect | IDashboardMatcherClient>[];
    totalRecords: number;
    rowsPerPageOptions: number[];
    rowsPerPage: number;
    sortField: string;
    sortOrder: GridSortDirection;
    columns: IGridColumn[];
    DefaultDateFormat: string;
    private requests;
    private matchers;
    private prospects;
    private clients;
    constructor(cdr: ChangeDetectorRef);
    ngOnInit(): void;
    onLazyLoad(request: IGridDataRequest): void;
    private updatedSelectedTab;
    private toGridData;
    private setTabsData;
    static ɵfac: i0.ɵɵFactoryDeclaration<AppClientGridComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AppClientGridComponent, "app-client-grid", never, { "hideToolbar": { "alias": "hideToolbar"; "required": false; }; "tab": { "alias": "tab"; "required": false; }; }, {}, never, never, false, never>;
}

declare class CardExpanderComponent {
    searchText: string;
    cardExpand: EventEmitter<boolean>;
    cardExpanded: boolean;
    MATCHER_INSIGHTS_VIEW_TAB: typeof MacherInsightsViewTab;
    expandToggle(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<CardExpanderComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<CardExpanderComponent, "app-card-expander", never, { "searchText": { "alias": "searchText"; "required": false; }; }, { "cardExpand": "cardExpand"; }, never, never, false, never>;
}

declare class ClientRequestCardComponent extends CardExpanderComponent {
    private bridge;
    clientRequest: IDashboardClientRequest;
    readonly icons: any;
    constructor(bridge: InsightsDataBridge);
    static ɵfac: i0.ɵɵFactoryDeclaration<ClientRequestCardComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ClientRequestCardComponent, "app-client-request-content-card", never, { "clientRequest": { "alias": "clientRequest"; "required": false; }; }, {}, never, never, false, never>;
}

declare class ClientMatcherCardComponent extends CardExpanderComponent {
    private bridge;
    matcher: IDashboardClientMatcher;
    readonly icons: any;
    constructor(bridge: InsightsDataBridge);
    static ɵfac: i0.ɵɵFactoryDeclaration<ClientMatcherCardComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ClientMatcherCardComponent, "app-client-matcher-content-card", never, { "matcher": { "alias": "matcher"; "required": false; }; }, {}, never, never, false, never>;
}

declare class MatcherClientCardComponent extends CardExpanderComponent {
    private bridge;
    client: IDashboardMatcherClient;
    readonly icons: any;
    constructor(bridge: InsightsDataBridge);
    static ɵfac: i0.ɵɵFactoryDeclaration<MatcherClientCardComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MatcherClientCardComponent, "app-matcher-client-content-card", never, { "client": { "alias": "client"; "required": false; }; }, {}, never, never, false, never>;
}

interface InsightsProgressBarConfig {
    value: number;
    label: string;
}
declare class InsightsProgressBarsComponent {
    bars: InsightsProgressBarConfig[];
    static ɵfac: i0.ɵɵFactoryDeclaration<InsightsProgressBarsComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<InsightsProgressBarsComponent, "lib-insights-progress-bars", never, { "bars": { "alias": "bars"; "required": false; }; }, {}, never, never, false, never>;
}

declare class ClientProspectCardComponent extends CardExpanderComponent {
    private bridge;
    clientProspect: IDashboardClientProspect;
    readonly icons: any;
    constructor(bridge: InsightsDataBridge);
    get midColumnBars(): InsightsProgressBarConfig[];
    get lastColumnBars(): InsightsProgressBarConfig[];
    static ɵfac: i0.ɵɵFactoryDeclaration<ClientProspectCardComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ClientProspectCardComponent, "app-client-prospect-content-card", never, { "clientProspect": { "alias": "clientProspect"; "required": false; }; }, {}, never, never, false, never>;
}

declare class ContentCardNameAgePipe implements PipeTransform {
    transform({ name, age }: {
        name: string;
        age: number;
    }): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentCardNameAgePipe, never>;
    static ɵpipe: i0.ɵɵPipeDeclaration<ContentCardNameAgePipe, "contentCardNameAge", false>;
}

declare class ContentCardFeePerMeetupPipe implements PipeTransform {
    transform({ fees, meetups }: {
        fees: number;
        meetups: number;
    }): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentCardFeePerMeetupPipe, never>;
    static ɵpipe: i0.ɵɵPipeDeclaration<ContentCardFeePerMeetupPipe, "contentCardFeePerMeetup", false>;
}

declare class ContentCardBackgroundCheckPipe implements PipeTransform {
    private readonly translateService;
    constructor(translateService: TranslateService);
    transform({ backgroundCheck }: {
        backgroundCheck: boolean;
    }): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentCardBackgroundCheckPipe, never>;
    static ɵpipe: i0.ɵɵPipeDeclaration<ContentCardBackgroundCheckPipe, "contentCardBackgroundCheck", false>;
}

declare class ContentCardLifetimeEarnPerMeetupPipe implements PipeTransform {
    transform({ lifetimeEarn, lifetimeMeetups }: {
        lifetimeEarn: number;
        lifetimeMeetups: number;
    }): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentCardLifetimeEarnPerMeetupPipe, never>;
    static ɵpipe: i0.ɵɵPipeDeclaration<ContentCardLifetimeEarnPerMeetupPipe, "contentCardLifetimeEarnPerMeetup", false>;
}

declare class ContentCardBWHPipe implements PipeTransform {
    transform(value: {
        bust: number;
        waist: number;
        height: number;
    }): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentCardBWHPipe, never>;
    static ɵpipe: i0.ɵɵPipeDeclaration<ContentCardBWHPipe, "contentCardBWH", false>;
}

declare class ContentCardWeightHeightRangePipe implements PipeTransform {
    private weightRange;
    private heightRange;
    private ftToCm;
    transform({ preferredWeight, preferredHeight }: {
        preferredWeight: ILowerUpper;
        preferredHeight: ILowerUpper;
    }): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentCardWeightHeightRangePipe, never>;
    static ɵpipe: i0.ɵɵPipeDeclaration<ContentCardWeightHeightRangePipe, "contentCardWeightHeightRange", false>;
}

declare class ContentCardStringArrayPipe implements PipeTransform {
    transform(array: string[]): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentCardStringArrayPipe, never>;
    static ɵpipe: i0.ɵɵPipeDeclaration<ContentCardStringArrayPipe, "contentCardStringArray", false>;
}

declare abstract class BaseInsightsTabComponent {
    abstract readonly tabKey: string;
    protected parent: LibInsightsComponent;
    readonly INSIGHTS_VIEW_TYPES: typeof InsightsViewType;
    readonly masonrySizes: IMasonrySize[];
    onGridUpdateTabData(event: {
        searchText: string;
        page?: number;
    }): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<BaseInsightsTabComponent, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<BaseInsightsTabComponent, never, never, {}, {}, never, never, true, never>;
}

declare class InsightsRequestsTabComponent extends BaseInsightsTabComponent {
    readonly tabKey = InsightsViewTab.Requests;
    static ɵfac: i0.ɵɵFactoryDeclaration<InsightsRequestsTabComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<InsightsRequestsTabComponent, "app-insights-requests-tab", never, {}, {}, never, never, false, never>;
}

declare class InsightsMatchersTabComponent extends BaseInsightsTabComponent {
    readonly tabKey = InsightsViewTab.Matchers;
    static ɵfac: i0.ɵɵFactoryDeclaration<InsightsMatchersTabComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<InsightsMatchersTabComponent, "app-insights-matchers-tab", never, {}, {}, never, never, false, never>;
}

declare class InsightsProspectsTabComponent extends BaseInsightsTabComponent {
    readonly tabKey = InsightsViewTab.Prospects;
    static ɵfac: i0.ɵɵFactoryDeclaration<InsightsProspectsTabComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<InsightsProspectsTabComponent, "app-insights-prospects-tab", never, {}, {}, never, never, false, never>;
}

declare class InsightsClientsTabComponent extends BaseInsightsTabComponent {
    readonly tabKey = MacherInsightsViewTab.Clients;
    static ɵfac: i0.ɵɵFactoryDeclaration<InsightsClientsTabComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<InsightsClientsTabComponent, "app-insights-clients-tab", never, {}, {}, never, never, false, never>;
}

declare class InsightsRoutingModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<InsightsRoutingModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<InsightsRoutingModule, never, [typeof i1.RouterModule], [typeof i1.RouterModule]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<InsightsRoutingModule>;
}

declare class LibInsightsModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<LibInsightsModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<LibInsightsModule, [typeof LibInsightsComponent, typeof BaseInsightsComponent, typeof AppClientContentCardsComponent, typeof AppClientGridComponent, typeof CardExpanderComponent, typeof ClientRequestCardComponent, typeof ClientMatcherCardComponent, typeof MatcherClientCardComponent, typeof ClientProspectCardComponent, typeof InsightsProgressBarsComponent, typeof ContentCardNameAgePipe, typeof ContentCardFeePerMeetupPipe, typeof ContentCardBackgroundCheckPipe, typeof ContentCardLifetimeEarnPerMeetupPipe, typeof ContentCardBWHPipe, typeof ContentCardWeightHeightRangePipe, typeof ContentCardStringArrayPipe, typeof InsightsRequestsTabComponent, typeof InsightsMatchersTabComponent, typeof InsightsProspectsTabComponent, typeof InsightsClientsTabComponent], [typeof i2.CommonModule, typeof i3.IonicModule, typeof CardSkeletonModule, typeof i4.FormsModule, typeof i4.ReactiveFormsModule, typeof InsightsRoutingModule, typeof i4$1.TranslateModule, typeof ExpansionPanelModule, typeof FormFieldModule, typeof GridModule, typeof LibTabMenuModule, typeof LibPageLayoutModule, typeof LibMasonryContainerModule, typeof SearchBarModule, typeof ButtonsModule, typeof ContentViewCardModule, typeof LibMarqueeModule, typeof LibPercentageBarModule, typeof TextHighlightDirective], [typeof LibInsightsComponent, typeof CardExpanderComponent, typeof ClientRequestCardComponent, typeof ClientMatcherCardComponent, typeof MatcherClientCardComponent, typeof ClientProspectCardComponent, typeof InsightsProgressBarsComponent, typeof ContentCardNameAgePipe, typeof ContentCardFeePerMeetupPipe, typeof ContentCardBackgroundCheckPipe, typeof ContentCardLifetimeEarnPerMeetupPipe, typeof ContentCardBWHPipe, typeof ContentCardWeightHeightRangePipe, typeof ContentCardStringArrayPipe]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<LibInsightsModule>;
}

interface InsightsLayoutConfig {
    showHeader: boolean;
    showBackButton: boolean;
}
declare const DEFAULT_INSIGHTS_LAYOUT_CONFIG: InsightsLayoutConfig;
declare const INSIGHTS_LAYOUT_CONFIG: InjectionToken<InsightsLayoutConfig>;

interface IRichText {
    html: string;
    text: string;
    markdown: string;
}
type RichTextToolbarAction = 'emoji' | 'gif' | 'bold' | 'italic' | 'strike' | 'link' | 'heading' | 'blockquote' | 'bullet-list' | 'ordered-list' | 'code-block' | 'superscript' | 'markdown-toggle';
declare const DEFAULT_TOOLBAR_ACTIONS: RichTextToolbarAction[];

interface IEmojiPickerConfig {
    pickerIcon: string;
    style?: string;
}

declare class RichTextareaComponent implements ControlValueAccessor, AfterViewInit, OnDestroy {
    quillEditorRef: ElementRef;
    emojiPickerRef: ElementRef;
    placeholder: string;
    maxLength: number;
    showToolbar: boolean;
    toolbarActions: RichTextToolbarAction[];
    emojiPickerConfig: IEmojiPickerConfig | null;
    contentChange: EventEmitter<IRichText>;
    private cdr;
    private renderer;
    private elementRef;
    private documentClickListener;
    quill: Quill;
    isMarkdownMode: boolean;
    readonly markdownTextControl: FormControl<string>;
    emojiVisible: boolean;
    disabled: boolean;
    private onChange;
    private onTouched;
    hasAction(action: RichTextToolbarAction): boolean;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    private initQuill;
    private buildValue;
    formatBold(): void;
    formatItalic(): void;
    formatStrike(): void;
    formatSuperscript(): void;
    formatHeading(): void;
    formatBlockquote(): void;
    formatBulletList(): void;
    formatOrderedList(): void;
    formatCodeBlock(): void;
    insertLink(): void;
    toggleEmoji(): void;
    onEmojiClick(event: any): void;
    insertGif(): void;
    toggleMarkdownMode(): void;
    onMarkdownInput(): void;
    private simpleMarkdownToHtml;
    private toggleFormat;
    private onDocumentClick;
    writeValue(value: IRichText | null): void;
    registerOnChange(fn: (value: IRichText | null) => void): void;
    registerOnTouched(fn: (touched: boolean) => void): void;
    setDisabledState(isDisabled: boolean): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<RichTextareaComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<RichTextareaComponent, "lib-rich-textarea", never, { "placeholder": { "alias": "placeholder"; "required": false; }; "maxLength": { "alias": "maxLength"; "required": false; }; "showToolbar": { "alias": "showToolbar"; "required": false; }; "toolbarActions": { "alias": "toolbarActions"; "required": false; }; "emojiPickerConfig": { "alias": "emojiPickerConfig"; "required": false; }; }, { "contentChange": "contentChange"; }, never, never, true, never>;
}

interface IText {
    message: string;
    attachments?: string[];
}

declare class TextBoxComponent implements ControlValueAccessor, OnInit, AfterViewInit, OnDestroy {
    messageBoxRef: ElementRef;
    emojiPickerRef: ElementRef;
    label: string;
    maxLength: number;
    includeEmojiPicker: boolean;
    emojiPickerConfig: IEmojiPickerConfig | null;
    includeImageAttachment: boolean;
    maxImageAttachmentLength: number;
    private renderer;
    private elementRef;
    private cdr;
    private documentClickListener;
    emojiVisibility: boolean;
    attachedImagesVisibility: boolean;
    attachedImages: ImageModel[];
    disabled: boolean;
    value: IText;
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    onDocumentClick(event: Event): void;
    onBlurPickerSpace(): void;
    onEmojiclick(event: any): void;
    onUploadImages(images: ImageModel[]): void;
    onAttachedPhotoDelete(index: number): void;
    onChange: (value: IText) => void;
    onTouched: (touched: boolean) => void;
    writeValue(value: IText | null): void;
    registerOnChange(fn: (value: IText) => void): void;
    registerOnTouched(fn: (touched: boolean) => void): void;
    setDisabledState?(isDisabled: boolean): void;
    onKeydown(event: KeyboardEvent): void;
    onPaste(event: ClipboardEvent): void;
    onInput(event: Event): void;
    updateModel(): void;
    private isDeleteOrArrowKey;
    static ɵfac: i0.ɵɵFactoryDeclaration<TextBoxComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TextBoxComponent, "lib-text-box", never, { "label": { "alias": "label"; "required": false; }; "maxLength": { "alias": "maxLength"; "required": false; }; "includeEmojiPicker": { "alias": "includeEmojiPicker"; "required": false; }; "emojiPickerConfig": { "alias": "emojiPickerConfig"; "required": false; }; "includeImageAttachment": { "alias": "includeImageAttachment"; "required": false; }; "maxImageAttachmentLength": { "alias": "maxImageAttachmentLength"; "required": false; }; }, {}, never, never, true, never>;
}

declare enum ToastrActionInitiator {
    TOASTR = "toastr-child",
    CONTROLLER = "toast-controller"
}

declare enum ToastrActionType {
    CREATION = "toastr-creation",
    DELETION = "toastr-deletion",
    REPLACEMENT = "toastr-replacement"
}

declare enum ToastrDescription {
    STRING = "string",
    TEMPLATE = "template",
    BUTTON = "button"
}

declare enum ToastrPosition {
    LeftTop = "left-top",
    LeftBottom = "left-bottom",
    RightTop = "right-top",
    RightBottom = "right-bottom"
}

interface IToasterConfig {
    token: string;
    severity?: ToastrSeverity;
    title: string;
    description: {
        content: string | TemplateRef<void>;
        type: ToastrDescription;
    };
    life?: number;
    loading?: boolean;
    clickToClose?: boolean;
    hideClose?: boolean;
    markCheck?: boolean;
    position: ToastrPosition;
    button?: {
        name?: string;
        onClick?: () => void;
    };
}

interface IToastrActionEvent {
    type: ToastrActionType;
    initiator: ToastrActionInitiator;
    config: IToasterConfig;
}

declare class LibToastrStackService {
    private toastrChangeSubject;
    toastrChanges: Observable<IToastrActionEvent>;
    constructor();
    emitToastrEvent(toastrActionEvent: IToastrActionEvent): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<LibToastrStackService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<LibToastrStackService>;
}

declare class LibToastrService {
    private toastrStackService;
    private mouseOverSubject;
    private isMouseOver;
    mouseOver$: Observable<boolean>;
    toastrAnimationDuration: number;
    toastrConfig: IToasterConfig;
    constructor(toastrStackService: LibToastrStackService);
    setMouseOverState(isMouseOver: boolean): void;
    emitToastrDeletionEvent(toastrConfig: IToasterConfig): void;
    emitToastrReplacementEvent(updatedToastrConfig: IToasterConfig): void;
    onToastrReplacementEvent(): Observable<IToastrActionEvent>;
    onToastrDeletionEvent(): Observable<IToastrActionEvent>;
    static ɵfac: i0.ɵɵFactoryDeclaration<LibToastrService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<LibToastrService>;
}

declare class LibLoadingBarComponent implements OnInit, OnDestroy {
    private libToastrService;
    private changeDetetorRef;
    private destroy$;
    mouseOver: boolean;
    toasterLife: number;
    constructor(libToastrService: LibToastrService, changeDetetorRef: ChangeDetectorRef);
    ngOnInit(): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<LibLoadingBarComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<LibLoadingBarComponent, "lib-loading-bar", never, { "toasterLife": { "alias": "toasterLife"; "required": false; }; }, {}, never, never, false, never>;
}

declare class LibToastrComponent implements OnInit, OnDestroy {
    private changeDetectorRef;
    private libToastrService;
    config: IToasterConfig;
    closeClick: EventEmitter<any>;
    checkboxChange: EventEmitter<any>;
    toasterLife: number;
    show: boolean;
    toasterIcon: string;
    timeout: number | null;
    checkbox: boolean;
    destroy$: Subject<void>;
    animationDuration: number;
    toastrExiting: boolean;
    selfKill: boolean;
    descriptionContent: string;
    descriptionTemplate: TemplateRef<void> | null;
    constructor(changeDetectorRef: ChangeDetectorRef, libToastrService: LibToastrService);
    ngOnInit(): void;
    ngOnDestroy(): void;
    private _initToaster;
    private _updateDescriptionProperties;
    private _initTimeout;
    private _clearTime;
    onCloseIconClick(event: Event): void;
    onCheckboxChange(): void;
    mouseOver(mouseState: boolean): void;
    performToastrCleanupRitual(updatedToastrConfig?: IToasterConfig): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<LibToastrComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<LibToastrComponent, "lib-toastr", never, { "config": { "alias": "config"; "required": false; }; }, { "closeClick": "closeClick"; "checkboxChange": "checkboxChange"; }, never, never, false, never>;
}

declare class LibToastrModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<LibToastrModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<LibToastrModule, [typeof LibToastrComponent, typeof LibLoadingBarComponent], [typeof i2.CommonModule, typeof i4$1.TranslateModule, typeof TooltipModule], [typeof LibToastrComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<LibToastrModule>;
}

type ToastrStackConfig = Omit<IToasterConfig, 'position'>;

declare class LibToastrStackComponent implements OnInit, OnDestroy {
    private cdr;
    private toastrStackService;
    max: number;
    position: ToastrPosition;
    config$: Observable<ToastrStackConfig>;
    configs: Array<IToasterConfig>;
    private componentDestroyed$;
    constructor(cdr: ChangeDetectorRef, toastrStackService: LibToastrStackService);
    ngOnInit(): void;
    ngOnDestroy(): void;
    private initListeners;
    static ɵfac: i0.ɵɵFactoryDeclaration<LibToastrStackComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<LibToastrStackComponent, "lib-toastr-stack", never, { "max": { "alias": "max"; "required": false; }; "position": { "alias": "position"; "required": false; }; "config$": { "alias": "config$"; "required": false; }; }, {}, never, never, false, never>;
}

declare class LibToastrStackModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<LibToastrStackModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<LibToastrStackModule, [typeof LibToastrStackComponent], [typeof i4$1.TranslateModule, typeof TooltipModule, typeof LibToastrModule], [typeof LibToastrStackComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<LibToastrStackModule>;
}

declare class UserMenuComponent implements OnInit, OnChanges {
    logoutTemplate: TemplateRef<HTMLElement>;
    settingsTemplate: TemplateRef<HTMLElement>;
    infoTemplate: TemplateRef<HTMLElement>;
    feedbackTemplate: TemplateRef<HTMLElement>;
    aisearchTemplate: TemplateRef<HTMLElement>;
    notificationsTemplate: TemplateRef<HTMLElement>;
    scrollableContainer: ElementRef;
    customMenuItems: ILibMenuItem[];
    notifications: INotificationsList[];
    isLoadingNotifications: boolean;
    userImageUrl: string;
    handleNotificationClick: EventEmitter<INotificationItem>;
    handleNotificationAccepted: EventEmitter<INotificationItem>;
    getNotifications: EventEmitter<boolean>;
    handleNotificationDelete: EventEmitter<{
        id: string;
        isButtonClick: boolean;
    }>;
    notificationsPanelOpened: EventEmitter<void>;
    emitFeedback: EventEmitter<void>;
    emitSettings: EventEmitter<void>;
    emitInfo: EventEmitter<void>;
    emitLogout: EventEmitter<void>;
    emitToggleSearch: EventEmitter<boolean>;
    searchVisible: boolean;
    /** Distance in pixels before the bottom to start loading more items */
    scrollThreshold: number;
    /** Time in milliseconds during which to ignore scroll events */
    throttle: number;
    /** Distance in percentage of container height to trigger infinite scroll */
    distance: number;
    notificationsOpened: boolean;
    moreNotificationsEnabled: boolean;
    /** Mirrors `computeHasNewNotifications` for template bindings (avoid method calls in templates). */
    hasNewNotifications: boolean;
    menuItems: ILibMenuItem[];
    private cdr;
    private searchBarVisibility;
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    private rebuildMenuItems;
    private refreshHasNewNotifications;
    private computeHasNewNotifications;
    enableMoreNotifications(): void;
    onScrollNotifications(): void;
    notificationClicked(e: INotificationItem): void;
    toggleNotifications(): void;
    handleNotificationActivity(event: INotificationActivity): void;
    onNotificationAccepted(item: INotificationItem): void;
    toggleSearchVisibility(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<UserMenuComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<UserMenuComponent, "lib-user-menu", never, { "customMenuItems": { "alias": "customMenuItems"; "required": false; }; "notifications": { "alias": "notifications"; "required": false; }; "isLoadingNotifications": { "alias": "isLoadingNotifications"; "required": false; }; "userImageUrl": { "alias": "userImageUrl"; "required": false; }; "searchVisible": { "alias": "searchVisible"; "required": false; }; }, { "handleNotificationClick": "handleNotificationClick"; "handleNotificationAccepted": "handleNotificationAccepted"; "getNotifications": "getNotifications"; "handleNotificationDelete": "handleNotificationDelete"; "notificationsPanelOpened": "notificationsPanelOpened"; "emitFeedback": "emitFeedback"; "emitSettings": "emitSettings"; "emitInfo": "emitInfo"; "emitLogout": "emitLogout"; "emitToggleSearch": "emitToggleSearch"; }, never, never, true, never>;
}

declare class LibPopperContentComponent implements OnInit, AfterViewInit, OnDestroy {
    private hostElement;
    arrowClass: string;
    popperClass: string;
    openOnInit: boolean;
    visibilityChange: EventEmitter<boolean>;
    popperContent: ElementRef;
    private popperInstance;
    private referenceElement;
    isVisible: boolean;
    constructor(hostElement: ElementRef);
    ngOnInit(): void;
    ngOnDestroy(): void;
    ngAfterViewInit(): void;
    setReferenceElement(element: HTMLElement): void;
    show(): void;
    hide(): void;
    toggle(): void;
    private initializePopper;
    private updatePopper;
    static ɵfac: i0.ɵɵFactoryDeclaration<LibPopperContentComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<LibPopperContentComponent, "lib-popper-content", never, { "arrowClass": { "alias": "arrowClass"; "required": false; }; "popperClass": { "alias": "popperClass"; "required": false; }; "openOnInit": { "alias": "openOnInit"; "required": false; }; }, { "visibilityChange": "visibilityChange"; }, never, ["*"], false, never>;
}

declare class PopperDirective implements OnInit, OnDestroy {
    private elementRef;
    popper: LibPopperContentComponent;
    popperTrigger: string;
    popperHideOnClickOutside: boolean;
    openOnInit: boolean;
    private isPopperVisible;
    private clickOutsideListener;
    constructor(elementRef: ElementRef);
    onClick(): void;
    onMouseEnter(): void;
    onMouseLeave(): void;
    ngOnInit(): void;
    ngOnDestroy(): void;
    showPopper(): void;
    hidePopper(): void;
    togglePopper(): void;
    private addClickOutsideListener;
    private removeClickOutsideListener;
    static ɵfac: i0.ɵɵFactoryDeclaration<PopperDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<PopperDirective, "[libPopper]", ["libPopper"], { "popper": { "alias": "libPopper"; "required": false; }; "popperTrigger": { "alias": "popperTrigger"; "required": false; }; "popperHideOnClickOutside": { "alias": "popperHideOnClickOutside"; "required": false; }; "openOnInit": { "alias": "openOnInit"; "required": false; }; }, {}, never, never, false, never>;
}

declare class PopperModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<PopperModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<PopperModule, [typeof PopperDirective, typeof LibPopperContentComponent], [typeof i2.CommonModule, typeof BaseCardModule], [typeof PopperDirective, typeof LibPopperContentComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<PopperModule>;
}

declare enum PasswordErrorMessages {
    minimum = "VALIDATIONS.PASSWORD_MINIMUM",
    uppercase = "VALIDATIONS.PASSWORD_UPPERCASE",
    lowercase = "VALIDATIONS.PASSWORD_LOWERCASE",
    number = "VALIDATIONS.PASSWORD_NUMBER",
    specialCharacter = "VALIDATIONS.PASSWORD_SPECIAL_CHARACTER",
    prefix = "VALIDATIONS.PASSWORD_ERROR_PREFIX"
}

declare enum NsfwClasses {
    NEUTRAL = "Neutral",
    SEXY = "Sexy",
    PORN = "PORN",
    HENTAI = "Hentai",
    DRAWING = "Drawing"
}

declare const enum ProfileHeaderOrientation {
    horizontal = "horizontal",
    vertical = "vertical"
}

/** Resolved key/value pair when hydrating autocomplete filter labels from the backend. */
interface IGridFilterOption {
    key: string;
    value: string | number;
}

interface IPopperInstance {
    destroy: () => void;
    update: () => void;
}

type PlaceDetailMode = 'gems' | 'itinerary';
interface IPlaceDetailConfig {
    mode: PlaceDetailMode;
    showHandle?: boolean;
    showActions?: boolean;
    showSaveHeart?: boolean;
    showSourcesTab?: boolean;
    showTipsTab?: boolean;
    showScheduleTab?: boolean;
    showMembersTab?: boolean;
    showGemTab?: boolean;
    showDebugPanel?: boolean;
}
interface IPlaceDetailData {
    id: string;
    name: string;
    description?: string;
    longDescription?: string;
    address?: string;
    city?: string;
    lat: number;
    lng: number;
    rating?: number;
    ratingSource?: string;
    reviewCount?: number;
    priceLevel?: string;
    category?: string;
    vibeTags?: string[];
    seasonality?: string[];
    compositeScore?: number;
    grassrootsScore?: number;
    grassrootsLabel?: string;
    scarcityScore?: number;
    localRatio?: number;
    frictionScore?: number;
    frictionAttributes?: string[];
    isTrending?: boolean;
    dataAge?: string;
    stalenessScore?: number;
    stalenessLabel?: string;
    commercializationScore?: number;
    commercializationLabel?: string;
    lastModifiedDate?: string;
    lastModifiedSource?: string;
    gemType?: string;
    eventSchedule?: IEventSchedule;
    eventDateRange?: {
        start?: string;
        end?: string;
    };
    eventDateRanges?: {
        start?: string;
        end?: string;
        label?: string;
    }[];
    participationInfo?: string;
    contactInfo?: IContactInfo;
    keySnippets?: string[];
    confirmingSources?: string[];
}
interface IEventSchedule {
    days?: string[];
    startTime?: string;
    endTime?: string;
    frequency?: string;
}
interface IContactInfo {
    phone?: string;
    email?: string;
    website?: string;
    socialMedia?: string;
}
interface IBusinessHoursData {
    openingHours?: string[];
}
interface IReviewItem {
    text: string;
    rating: number;
    source: string;
    sourceLogoUrl?: string;
    reviewerName?: string;
    date?: string;
}
interface IBusynessEntry {
    day: string;
    hour: number;
    intensity: number;
}
interface IBusynessData {
    peakHours?: IBusynessEntry[];
    quietHours?: IBusynessEntry[];
    currentBusyness?: number;
    lastUpdated?: string;
    source?: string;
}
interface ISourceSummary {
    id?: string;
    type: string;
    label: string;
    shortLabel: string;
    bgColor: string;
    credibilityScore?: number;
    insiderTip?: string;
    rawText?: string;
    originUrl?: string;
}
interface IInsiderTip {
    text: string;
    source?: string;
}
interface IScoringRow {
    label: string;
    normalized: number;
    color: string;
    direction: 'good' | 'penalty' | 'neutral';
    explanation: string;
}
interface IScanJobSummary {
    cityName: string;
    status: string;
    gemsFound: number;
    costIncurred: number;
    createdAt?: string;
    enabledSources?: string[];
}
interface IPipelineLogEntry {
    sourceId: string;
    sourceLabel: string;
    status: string;
    durationMs: number;
    itemsCollected: number;
    costUsd: number;
    skipReason?: string;
    errorMessage?: string;
    logLines?: string[];
}
interface ILlmLogSummary {
    totalExtracted: number;
    chainFiltered: number;
    llmVerified: number;
}
interface INicheSynergyEntry {
    gemName: string;
    confirmingSources?: string[];
    nicheBonus?: number;
}
interface IPersistLogSummary {
    totalPersisted: number;
    duplicatesSkipped: number;
    geocodeFailed: number;
}
interface ISearchTermHit {
    term: string;
    tier: string;
    source: string;
    hitCount: number;
}
interface IGemJourneyStage {
    stage: string;
    outcome: string;
    reason: string;
    scoreAtStage?: number;
    scoreChange?: string;
}
interface IGemJourney {
    provenance: string;
    finalOutcome: string;
    finalScarcityScore?: number;
    stages: IGemJourneyStage[];
}
interface IDiscoveryLogEntry {
    step: string;
    source: string;
    detail: string;
    timestamp: string;
    scoreAtStep?: number;
}

interface IProfile {
    id?: number;
    name: string;
    photo: string;
    value?: number;
    progress?: number;
    notification?: number;
}

declare class NextsapienComponentLibModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<NextsapienComponentLibModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<NextsapienComponentLibModule, never, [typeof i2.CommonModule, typeof i1.RouterModule, typeof i3.IonicModule, typeof i7.MatButtonModule, typeof i5$3.MatCardModule, typeof i15.MatDividerModule, typeof i4$4.MatDialogModule, typeof i13.MatIconModule, typeof i6.MatInputModule, typeof i14.MatMenuModule, typeof i3$4.MatProgressSpinnerModule, typeof i17.MatTooltipModule, typeof i13$2.MatSnackBarModule, typeof i10$1.MatSelectModule, typeof i4.FormsModule, typeof i4.ReactiveFormsModule, typeof i16.MatProgressBarModule, typeof i4$1.TranslateModule, typeof GridModule, typeof GridFiltersModule, typeof FormFieldModule, typeof FeedbackModule], never>;
    static ɵinj: i0.ɵɵInjectorDeclaration<NextsapienComponentLibModule>;
}

/**
 * operations.ts - Contains common operations utility functions.
 *
 * @file This file exports utility functions for common operations.
 */
/**
 * Generates a random string of the specified length.
 *
 * @param {number} [length=10] - The length of the random string to generate. Default is 10.
 * @return {string} A randomly generated string.
 */
declare function randomString(length?: number): string;
/**
 * Collection of common operations utility functions.
 */
declare const CommonOperations: {
    randomString: typeof randomString;
};

declare class ArraySortPipe implements PipeTransform {
    transform(array: any, field: string, type?: string): any[];
    static ɵfac: i0.ɵɵFactoryDeclaration<ArraySortPipe, never>;
    static ɵpipe: i0.ɵɵPipeDeclaration<ArraySortPipe, "sort", false>;
}

interface WorkerMessage {
    messageId: number;
    action: string;
}
interface FacesDetectedMessage extends WorkerMessage {
    action: 'facesDetected';
    faces: Array<any>;
}
interface ImageClassifiedMessage extends WorkerMessage {
    action: 'imageClassified';
    classifications: Array<{
        className: NsfwClasses;
        probability: number;
    }>;
}
interface ModelsLoadedMessage extends WorkerMessage {
    action: 'modelsLoaded';
}
type WorkerResponse = FacesDetectedMessage | ImageClassifiedMessage | ModelsLoadedMessage;

declare class NsfwWorkerService {
    canvas: HTMLCanvasElement;
    protected worker: Worker;
    protected _modelsLoaded$: BehaviorSubject<boolean>;
    modelsLoaded$: Observable<boolean>;
    protected messageId: number;
    protected messageHandlers: Map<number, {
        handler: (data: WorkerResponse) => void;
        observer: any;
    }>;
    protected subscribeToWorkerMessagesAndLoadModels(): void;
    faceDetector(image: string): Observable<boolean>;
    nsfwDetector(image: string): Observable<boolean>;
    private loadModels;
    static ɵfac: i0.ɵɵFactoryDeclaration<NsfwWorkerService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<NsfwWorkerService>;
}

declare class PopperService {
    private targetElement;
    targetElement$: Observable<HTMLElement>;
    private _togglePopper$;
    togglePopper$: Observable<boolean>;
    updateTargetElement(element: HTMLElement): void;
    togglePopper(isOpen?: boolean): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<PopperService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<PopperService>;
}

declare function DateRangeValidator(fromDateControlName: string, toDateControlName: string): ValidatorFn;
declare function TimeRangeValidator(fromTimeControlName: string, toTimeControlName: string): ValidatorFn;

declare const dateInCurrentWeek: () => ValidatorFn;

interface IMapCircleItem {
    index: number;
    circle: MapCircle;
}

interface IDefaultLocationConfig {
    awsRegion: string;
    awsApiKey: string;
    styleName?: string;
    colorScheme?: string;
}
interface IResolvedLocation {
    center: [number, number];
    zoom: number;
    source: 'explicit' | 'user-profile' | 'geolocation' | 'ip-location' | 'fallback';
}
interface ICyranoMapOptions {
    preserveDrawingBuffer: boolean;
    attributionControl: boolean;
    maxZoom: number;
    minZoom: number;
}
/**
 * CyranoBaseMap - Unified foundation service for all map instances.
 *
 * Every map in the application uses this service for:
 * - Style loading (fetch + sanitize + brand theme)
 * - Default location resolution (priority chain)
 * - Shared color tokens
 * - Standard map instantiation options
 *
 * Location priority chain (enforced identically for every map):
 * 1. Explicitly provided location (from host component Input)
 * 2. User-provided location (registration/settings stored in profile)
 * 3. Browser geolocation (requires permission)
 * 4. IP-based geolocation (fallback, no permission needed)
 */
declare class CyranoBaseMapService {
    private readonly http;
    private cachedStyle;
    private styleObs$;
    private readonly _userProfileLocation$;
    private readonly _resolvedLocation$;
    private geoWatchId;
    readonly resolvedLocation$: Observable<IResolvedLocation>;
    constructor(http: HttpClient);
    getStyle(config: IDefaultLocationConfig): Observable<any>;
    invalidateStyleCache(): void;
    getDefaultMapOptions(): ICyranoMapOptions;
    /**
     * Set the user's stored profile location (from registration or settings).
     * Priority 2. Should be called on login/app-init.
     */
    setUserProfileLocation(lngLat: [number, number] | null): void;
    getUserProfileLocation(): [number, number] | null;
    /**
     * Resolves the best initial location using the priority chain.
     * Always returns a location (never hangs).
     *
     * @param explicitLocation Priority 1: explicitly provided by host component
     * @param defaultZoom Zoom level to use (default 12)
     */
    resolveDefaultLocation(explicitLocation?: [number, number] | null, defaultZoom?: number): Observable<IResolvedLocation>;
    private resolveGeoThenIp;
    private tryGeolocation;
    private doGetCurrentPosition;
    private tryIpLocation;
    private isValidCoord;
    clearGeoWatch(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<CyranoBaseMapService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<CyranoBaseMapService>;
}

/**
 * Unified map color system for Cyrano's neomorphic dark theme.
 *
 * Design constraint: only THREE hues (pink-red, light-pink/teal, dark) plus
 * opacity and size variations. No rainbow scales.
 *
 * The grassroots/score scale uses opacity progression on the brand pink rather
 * than a multi-hue rainbow, maintaining visual coherence with the neumorphic UI.
 */
declare const CYRANO_MAP_COLORS: {
    readonly background: "#120808";
    readonly land: "#2d0e0e";
    readonly water: "#0d0508";
    readonly vegetation: "#2a0f0f";
    readonly building: "#3a1414";
    readonly roadMajor: "#5a2040";
    readonly roadMinor: "#3d1212";
    readonly border: "#0d0508";
    readonly labels: "#aaaaaa";
};
declare const MAP_ACCENT: {
    readonly primary: "#FE3C72";
    readonly primaryLight: "#FFB5E9";
    readonly teal: "#00F6FF";
    readonly dark: "#28252D";
};
declare const MAP_PIN_COLORS: {
    readonly browse: "rgba(255, 181, 233, 0.7)";
    readonly browseStroke: "rgba(255, 255, 255, 0.8)";
    readonly added: "#FE3C72";
    readonly addedStroke: "#ffffff";
    readonly selected: "#FFB5E9";
    readonly selectedGlow: "rgba(254, 60, 114, 0.4)";
    readonly saved: "#FFB5E9";
    readonly savedStroke: "rgba(255, 255, 255, 0.9)";
    readonly routeStart: "#00E676";
    readonly routeEnd: "#FF1744";
};
interface ScoreTierConfig {
    minScore: number;
    color: string;
    opacity: number;
    sizeMultiplier: number;
    glowColor: string;
    strokeColor: string;
}
declare const SCORE_TIERS: ScoreTierConfig[];
/**
 * MapLibre interpolation expression for icon-color based on score.
 * Uses opacity variation on the brand pink rather than a color rainbow.
 */
declare function scoreColorExpression(scoreProperty: string): any[];
/**
 * MapLibre interpolation expression for circle-radius/icon-size based on score.
 * Higher scores get larger pins (conveying importance through size).
 */
declare function scoreSizeExpression(scoreProperty: string, baseSize: number): any[];
/**
 * MapLibre interpolation expression for the glow/shadow behind pins.
 */
declare function scoreGlowExpression(scoreProperty: string): any[];
/**
 * MapLibre interpolation expression for stroke around pins.
 */
declare function scoreStrokeExpression(scoreProperty: string): any[];

/**
 * Unified map configuration interfaces for the V2 modular map system.
 *
 * Each map context provides an ICyranoMapConfig that selects which modules
 * to activate and overrides defaults for its specific use case.
 */
interface IDrawingModuleConfig {
    enableDraw?: boolean;
    enableRadius?: boolean;
    drawColor?: string;
    fillOpacity?: number;
    maxRadius?: number;
}
interface IPinLayerModuleConfig {
    maxPins?: number;
    showOverflowDots?: boolean;
    dotRadius?: number;
    rankingFn?: (a: any, b: any) => number;
}
interface IGemPinModuleConfig {
    scoreProperty?: string;
    labelMinZoom?: number;
    showSaved?: boolean;
    showHeatmap?: boolean;
    showScanDebug?: boolean;
    gemsEndpointUrl?: string;
}
interface IGlobeSyncModuleConfig {
    showGlobe?: boolean;
    globePosition?: 'bottom-right' | 'bottom-left';
    globeMaxSize?: number;
}
interface IRoutingModuleConfig {
    showRoute?: boolean;
    routePlaces?: number[][];
    startPosition?: [number, number];
    endPosition?: [number, number];
    displayMode?: 'route' | 'route-buffer' | 'drawn-zone';
    bufferRadiusKm?: number;
}
interface IEnrichmentModuleConfig {
    enrichmentApiUrl?: string;
    showPhotos?: boolean;
    showReviews?: boolean;
    showBusyness?: boolean;
    skeletonCount?: number;
}
interface ICyranoMapModules {
    drawing?: IDrawingModuleConfig;
    pins?: IPinLayerModuleConfig;
    gems?: IGemPinModuleConfig;
    globe?: IGlobeSyncModuleConfig;
    routing?: IRoutingModuleConfig;
    enrichment?: IEnrichmentModuleConfig;
}
interface ICyranoMapConfig {
    center?: [number, number];
    zoom?: number;
    fullHeight?: boolean;
    enableInteraction?: boolean;
    modules?: ICyranoMapModules;
}
/**
 * Default configuration values applied when a module is activated
 * but the host doesn't provide specific overrides.
 */
declare const DEFAULT_MODULE_CONFIGS: {
    readonly drawing: {
        enableDraw: false;
        enableRadius: false;
        drawColor: string;
        fillOpacity: number;
        maxRadius: number;
    };
    readonly pins: {
        maxPins: number;
        showOverflowDots: true;
        dotRadius: number;
        rankingFn: undefined;
    };
    readonly gems: {
        scoreProperty: string;
        labelMinZoom: number;
        showSaved: false;
        showHeatmap: false;
        showScanDebug: false;
        gemsEndpointUrl: string;
    };
    readonly globe: {
        showGlobe: false;
        globePosition: "bottom-right";
        globeMaxSize: number;
    };
    readonly routing: {
        showRoute: false;
        routePlaces: never[];
        startPosition: undefined;
        endPosition: undefined;
        displayMode: "route";
        bufferRadiusKm: number;
    };
    readonly enrichment: {
        enrichmentApiUrl: string;
        showPhotos: true;
        showReviews: true;
        showBusyness: false;
        skeletonCount: number;
    };
};

/**
 * OBSERVATION: Both explore.component.ts (location-lib) and AwsMapStyleCacheService
 * (itinerary-lib) had identical sanitizeStyleNullNumbers and near-identical applyBrandTheme
 * implementations. This shared utility unifies them.
 *
 * OBSERVATION (2026-04, land layer coverage): The isLand regex MUST be case-insensitive
 * and checked BEFORE isVegetation in the if/else chain, because AWS map styles use
 * inconsistent casing (Land_use, landuse, Land/Not ice, Park, park) and "Park" layers
 * were being matched by isVegetation's Park check before isLand could catch them.
 * The regex must cover: Earth, Land.*, Landuse, Park.*, Nature.*, Beach, Island.
 *
 * OBSERVATION (patchNullGets - coalesce-only, no to-number):
 * sanitizeStyleNullNumbers wraps bare ["get", prop] in ["coalesce", ..., 0] for null
 * protection in paint and non-string layout properties. Using ["to-number", ...] was
 * initially tried but converted string property values to numbers, breaking string
 * comparisons in match/case/step expressions. Filter expressions are deliberately NOT
 * processed. STRING_LAYOUT_KEYS (text-field, icon-image, etc.) are skipped entirely.
 */
declare function sanitizeStyleNullNumbers(style: any): void;
interface BrandThemeColors {
    background: string;
    water: string;
    land: string;
    vegetation: string;
    building: string;
    roadMajor: string;
    roadMinor: string;
    border: string;
}
declare function applyBrandTheme(style: any, colors?: BrandThemeColors): void;

/**
 * OBSERVATION: Both explore.component.ts (location-lib) and aws-map.component.ts
 * (itinerary-lib) duplicate IGlobe interface, MAX_GLOBE_DIMENSION, canvas ID
 * randomization, and resize debouncing. This shared module unifies them.
 */
interface IGlobe {
    controls(): any;
    pointOfView(options?: {
        lat: number;
        lng: number;
        altitude: number;
    }): any;
    htmlElementsData(data: any): any;
    width(width: number): IGlobe;
    height(height: number): IGlobe;
    backgroundColor(color: string): IGlobe;
    showGlobe(show: boolean): IGlobe;
    showAtmosphere(show: boolean): IGlobe;
    atmosphereColor(color: string): IGlobe;
    atmosphereAltitude(alt: number): IGlobe;
    globeImageUrl(url: string): IGlobe;
    bumpImageUrl(url: string): IGlobe;
    htmlElement(fn: (data: any) => HTMLElement): IGlobe;
    globeMaterial: any;
    polygonsData(data: any[]): IGlobe;
    polygonCapColor(fn: (d: any) => string): IGlobe;
    polygonSideColor(fn: (d: any) => string): IGlobe;
    polygonStrokeColor(fn: (d: any) => string): IGlobe;
    polygonsTransitionDuration(ms: number): IGlobe;
    [key: string]: any;
}
interface IGlobeMarker {
    color: string;
    size: string | number;
}
interface IGlobeAssets {
    globe: {
        loaded: boolean;
        image: HTMLImageElement;
    };
    earthTopology: {
        loaded: boolean;
        image: HTMLImageElement;
    };
    markerSvg: string;
}
declare const MAX_GLOBE_DIMENSION = 200;
declare const GLOBE_DIMENSION_DIVISOR = 4;
declare const DEFAULT_GLOBE_SIZE = 120;
declare const GLOBE_SIZE_SCALE_FACTOR = 0.35;
declare function generateGlobeCanvasId(): string;
declare function calculateGlobeSize(containerWidth: number): number;

type PlaceDetailTab = 'basic' | 'insider' | 'audit' | 'info' | 'sources' | 'tips' | 'gem' | 'schedule' | 'members';
declare const SOURCE_TYPE_COLORS: Record<string, {
    bg: string;
    short: string;
    label: string;
}>;
declare class PlaceDetailPanelComponent {
    config: IPlaceDetailConfig;
    data: IPlaceDetailData;
    photoUrls: string[];
    photosLoading: boolean;
    sources: ISourceSummary[];
    reviews: IReviewItem[];
    insiderTips: IInsiderTip[];
    busynessData: IBusynessData | null;
    businessHours: IBusinessHoursData | null;
    matchingInterests: string[];
    recommendedDishes: string[];
    loading: boolean;
    error: string | null;
    devModeUnlocked: boolean;
    closePanel: EventEmitter<void>;
    savePlace: EventEmitter<void>;
    addToItinerary: EventEmitter<void>;
    removeFromItinerary: EventEmitter<void>;
    setAsStart: EventEmitter<void>;
    setAsEnd: EventEmitter<void>;
    photoClicked: EventEmitter<number>;
    activeTab: PlaceDetailTab;
    showHours: boolean;
    expandedSourceIdx: number | null;
    /**
     * V2 plan A18 — per-activity pipeline-version override for the Audit tab.
     * Mirrors the global `Activity.pipelineOverride` field. Future PR will wire
     * a save handler that PATCHES the override into LocationDb; for now this is
     * a UI-only state that lets the design match the Figma toggle.
     */
    auditPipelineVersion: 'v1' | 'v2';
    setAuditPipelineVersion(version: 'v1' | 'v2'): void;
    readonly SOURCE_TYPE_COLORS: Record<string, {
        bg: string;
        short: string;
        label: string;
    }>;
    /**
     * V2 plan A1: Figma's Basic/Insider/Audit trio. Default behavior shows the
     * full trio so the drawer matches the published Figma instantly. Audit is
     * gated by devModeUnlocked (Konami) and the legacy showSourcesTab flag.
     * Other historical tabs (gem/schedule/members) only appear if a caller
     * still passes the corresponding config flag.
     */
    get tabs(): {
        key: PlaceDetailTab;
        label: string;
    }[];
    get cyranoScore(): number;
    get grassrootsColor(): string;
    get grassrootsLabel(): string;
    get uniqueSourceTypes(): {
        type: string;
        bg: string;
        short: string;
        label: string;
    }[];
    get ratingStars(): string;
    get ratingSourceIcon(): string;
    get hasEventDates(): boolean;
    get hasContactInfo(): boolean;
    get stalenessClass(): string;
    get tabIndicatorLeft(): string;
    get tabIndicatorWidth(): string;
    setTab(tab: PlaceDetailTab): void;
    toggleSourceDetail(idx: number): void;
    extractDomain(url: string): string;
    hasAnyFriction(attrs?: string[]): boolean;
    buildSearchUrl(srcType: string, name: string, city?: string): string;
    /**
     * V2 plan A10 (Figma 14691-93223). Popular Times curve derived from the
     * busyness peak/quiet hour data. Aggregates intensity per day, builds an
     * SVG polyline path + fill path, and returns the peak slot so the template
     * can render a tooltip and marker dot.
     */
    get popularTimes(): {
        days: string[];
        points: Array<{
            x: number;
            y: number;
            day: string;
            hour: number;
            intensity: number;
        }>;
        linePath: string;
        fillPath: string;
        peak: {
            x: number;
            y: number;
            day: string;
            hour: number;
            label: string;
        } | null;
    };
    static ɵfac: i0.ɵɵFactoryDeclaration<PlaceDetailPanelComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<PlaceDetailPanelComponent, "lib-place-detail-panel", never, { "config": { "alias": "config"; "required": false; }; "data": { "alias": "data"; "required": false; }; "photoUrls": { "alias": "photoUrls"; "required": false; }; "photosLoading": { "alias": "photosLoading"; "required": false; }; "sources": { "alias": "sources"; "required": false; }; "reviews": { "alias": "reviews"; "required": false; }; "insiderTips": { "alias": "insiderTips"; "required": false; }; "busynessData": { "alias": "busynessData"; "required": false; }; "businessHours": { "alias": "businessHours"; "required": false; }; "matchingInterests": { "alias": "matchingInterests"; "required": false; }; "recommendedDishes": { "alias": "recommendedDishes"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "error": { "alias": "error"; "required": false; }; "devModeUnlocked": { "alias": "devModeUnlocked"; "required": false; }; }, { "closePanel": "closePanel"; "savePlace": "savePlace"; "addToItinerary": "addToItinerary"; "removeFromItinerary": "removeFromItinerary"; "setAsStart": "setAsStart"; "setAsEnd": "setAsEnd"; "photoClicked": "photoClicked"; }, never, never, false, never>;
}

declare class PlaceDetailPanelModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<PlaceDetailPanelModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<PlaceDetailPanelModule, [typeof PlaceDetailPanelComponent], [typeof i2.CommonModule, typeof i3.IonicModule, typeof DirectiveModule], [typeof PlaceDetailPanelComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<PlaceDetailPanelModule>;
}

declare class GemDiscoveryDebugPanelComponent {
    enabled: boolean;
    scoringRows: IScoringRow[];
    scoringSummary: string | null;
    scanJob: IScanJobSummary | null;
    pipelineLog: IPipelineLogEntry[];
    llmLog: ILlmLogSummary | null;
    nicheSynergyLog: INicheSynergyEntry[];
    persistLog: IPersistLogSummary | null;
    searchTermHits: ISearchTermHit[];
    gemJourney: IGemJourney | null;
    discoveryLog: IDiscoveryLogEntry[];
    expandedScoringRow: string | null;
    expandedPipelineIdx: number | null;
    panelCollapsed: boolean;
    toggleScoringTooltip(label: string): void;
    togglePipelineEntry(idx: number): void;
    togglePanel(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<GemDiscoveryDebugPanelComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<GemDiscoveryDebugPanelComponent, "lib-gem-discovery-debug-panel", never, { "enabled": { "alias": "enabled"; "required": false; }; "scoringRows": { "alias": "scoringRows"; "required": false; }; "scoringSummary": { "alias": "scoringSummary"; "required": false; }; "scanJob": { "alias": "scanJob"; "required": false; }; "pipelineLog": { "alias": "pipelineLog"; "required": false; }; "llmLog": { "alias": "llmLog"; "required": false; }; "nicheSynergyLog": { "alias": "nicheSynergyLog"; "required": false; }; "persistLog": { "alias": "persistLog"; "required": false; }; "searchTermHits": { "alias": "searchTermHits"; "required": false; }; "gemJourney": { "alias": "gemJourney"; "required": false; }; "discoveryLog": { "alias": "discoveryLog"; "required": false; }; }, {}, never, never, false, never>;
}

declare class GemDiscoveryDebugPanelModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<GemDiscoveryDebugPanelModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<GemDiscoveryDebugPanelModule, [typeof GemDiscoveryDebugPanelComponent], [typeof i2.CommonModule], [typeof GemDiscoveryDebugPanelComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<GemDiscoveryDebugPanelModule>;
}

export { AbstractAuthService, AccelerometerService, AppListbox, AppOption, ArraySortPipe, AsFormArrayPipe, AsFormControlPipe, AuthHeaderComponent, AuthModuleViewComponent, AuthProviders, AuthSocialComponent, AuthenticationModule, AutoFocusDirective, AvatarComponent, BaseBtnComponent, BaseCardComponent, BaseCardModule, BaseComponent, BottomModalComponent, BubbleBtnComponent, ButtonsModule, CIRCLE_OPTIONS, CYRANO_MAP_COLORS, CardExpanderComponent, CardSkeletonComponent, CardSkeletonModule, ChipBtnComponent, ClientMatcherCardComponent, ClientProspectCardComponent, ClientRequestCardComponent, ColumnManagementModalComponent, ColumnManagementModalModule, CommonOperations, ConfirmPasswordValidatorDirective, ConfirmationModalComponent, ConfirmationModalModule, ContentCardBWHPipe, ContentCardBackgroundCheckPipe, ContentCardFeePerMeetupPipe, ContentCardFirstColumnDirective, ContentCardHeadingDirective, ContentCardLastColumnDirective, ContentCardLifetimeEarnPerMeetupPipe, ContentCardNameAgePipe, ContentCardSectionDirective, ContentCardStringArrayPipe, ContentCardSubHeadingsDirective, ContentCardWeightHeightRangePipe, ContentCardXLargeSubHeadingsDirective, ContentToggleDirective, ContentViewCardComponent, ContentViewCardModule, CountNonEmptyFieldsPipe, CountryCode, CountryISO, CustomPasswordValidatorDirective, CyranoBaseMapService, DEFAULT_GLOBE_SIZE, DEFAULT_INSIGHTS_LAYOUT_CONFIG, DEFAULT_MAP_OPTIONS, DEFAULT_MODULE_CONFIGS, DEFAULT_POSITION, DEFAULT_TOOLBAR_ACTIONS, DashedCheckboxComponent, DashedCheckboxModule, DateFilterComponent, DateLocalizationPipe, DateRangeValidator, DebounceClickDirective, Direction, DirectiveModule, DisableControlDirective, DragAndDropComponent$1 as DragAndDropComponent, DragAndDropModule$1 as DragAndDropModule, DraggableScrollDirective, DrawerComponent, DrawerModule, DurationPickerComponent, DurationPickerModule, EditCompleteEvent, ErrorMessageComponent, ExpansionPanelComponent, ExpansionPanelModule, FallbackTranslatePipe, FeedbackModalComponent, FeedbackModalVariant, FeedbackModule, FeedbackScreenshotComponent, FeedbackSendComponent, FeedbackService, FeedbackSuccessComponent, FieldTypePipe, FilterBarComponent, FilterOperator, FilterType, FocusInvalidInputDirective, FooterSharedComponent, ForgotPasswordScreenComponent, FormActionConfig, FormBannerConfig, FormCardExpiryConfig, FormCardNumberConfig, FormCheckboxConfig, FormFieldComponent, FormFieldModule, FormFieldStructure, FormFieldStructureBuilder, FormFieldType, FormFieldVariables, FormGenStyle, FormGeneratorComponent, FormGeneratorModule, FormGroupExpanderChange, FormIncrementerConfig, FormInjectableFormFieldConfig, FormMultifieldConfig, FormMultiselectConfig, FormNumberConfig, FormRadioConfig, FormRatingConfig, FormSectionStructure, FormSectionStructureBuilder, FormSectionVariables, FormSelectConfig, FormSelectEnhancedConfig, FormSelectableConfig, FormStructure, FormTelInputConfig, FormTextlistConfig, FormTimePickerConfig, FormTypeaheadConfig, FormValidatorModule, FormVariables, GLOBE_DIMENSION_DIVISOR, GLOBE_SIZE_SCALE_FACTOR, GemDiscoveryDebugPanelComponent, GemDiscoveryDebugPanelModule, GetDisplayValuePipe, GetFilterValuesPipe, GetMultiSelectDisplayTextPipe, GridComponent, GridFilterService, GridFiltersModalComponent, GridFiltersModule, GridModule, GridToolbarModule, HoverBtnComponent, INSIGHTS_LAYOUT_CONFIG, IconBtnComponent, ImageCardComponent, ImageCardModule, ImageCropperService, ImageDeckComponent, ImageFormats, ImageModel, ImageUploadModalComponent, InfoCardComponent, InfoCardListComponent, InfoCardListModule, InfoCardModule, InfoCardPlaceholderComponent, InfoCardPlaceholderModule, InitialsPipe, InputDateFieldComponent, InputDateFieldInlineComponent, InputDateFieldModule, InputFieldCardExpiryComponent, InputFieldCardModule, InputFieldCardNumberComponent, InputFieldCardService, InputFieldComponent, InputFieldModule, InputFieldSelectComponent, InputFieldSelectModule, InputTimeFieldComponent, InputTimeFieldModule, InsightsClientsTabComponent, InsightsDataBridge, InsightsMatchersTabComponent, InsightsProgressBarsComponent, InsightsProspectsTabComponent, InsightsRequestsTabComponent, InsightsRoutingModule, InsightsViewTab, InsightsViewType, InvalidInputDirective, ItemActionHandler, ItemInfoLine, ItemSummary, JsonEditorMode, LazyImageDirective, LibErrorMessageComponent, LibFooterTabsComponent, LibInsightsComponent, LibInsightsModule, LibJsonEditorComponent, LibJsonEditorModule, LibLoadingBarComponent, LibMapModule, LibMapsComponent, LibMarqueeModule, LibMasonryContainerComponent, LibMasonryContainerModule, LibModalComponent, LibModalModule, LibPageLayoutComponent, LibPageLayoutModule, LibPercentageBarComponent, LibPercentageBarModule, LibPopperContentComponent, LibRadioButtonComponent, LibTabMenuComponent, LibTabMenuModule, LibToastrComponent, LibToastrModule, LibToastrStackComponent, LibToastrStackModule, ListBtnComponent, ListComponent, ListItemModel, ListModule, ListToggleComponent, LocationSuggestionPanelComponent, LoginFormType, LoginInputComponent, LoginInputModule, LoginScreenComponent, LongPressDirective, MAP_ACCENT, MAP_CIRCLE_RADIUS_KMS, MAP_PIN_COLORS, MAP_STYLES, MAP_ZOOM_POSITION, MARKER_OPTIONS, MARKER_OPTIONS_ENABLE_DRAG, MAX_GLOBE_DIMENSION, MODAL_DATA, MacherInsightsViewTab, ManageFiltersModalComponent, MapActionTypes, MapLibService, MapProvider, MapService, MarqueeComponent, MatcherClientCardComponent, MenuBtnComponent, MenuItemComponent, MultiColoredTextComponent, MultiColoredTextModule, MultiFieldComponent, MultiFieldModule, MultiselectComponent, MultiselectModule, NativeElementInjectorDirective, NextsapienComponentLibModule, NotificationBannerComponent, NotificationBannerModule, NotificationBannerType, NotificationStatuses, NotificationSwipes, NotificationsListComponent, NotificationsModule, NotificationsService, NsfwClasses, NsfwWorkerService, Orders, OtpInputComponent, OtpInputModule, PaginationResponse, PasswordErrorMessages, PasswordValidatorDirective, PasswordValidatorModule, PhoneNumberFormat, PhotoUploadModule, PictureGalleryComponent, PipeModule, PlaceDetailPanelComponent, PlaceDetailPanelModule, PlaceTypes, Polarity, PopperDirective, PopperModule, PopperService, PopupModalService, PremiumChipComponent, PremiumChipModule, PremiumChipVariantTypes, PreviewWindowComponent, PreviewWindowModule, PrimaryBtnComponent, ProfileHeaderComponent, ProfileHeaderModule, ProfileHeaderOrientation, ProgressBarComponent, ProgressBarModule, RangeSelectorComponent, RangeSelectorModule, Ranks, RatingFieldComponent, RatingFieldModule, ResetPasswordScreenComponent, ResizedDirective, ResizedEvent, RichTextareaComponent, RoundPipe, SCORE_TIERS, SOURCE_TYPE_COLORS, ScanPillComponent, ScanPillModule, ScrollPositionService, SearchBarComponent, SearchBarModule, SearchBarVisibilityService, SearchCountryField, SecondaryBtnComponent, SectionSeparatorComponent, SelectFilterComponent, SelectOption, SelectableComponent, SelectableModule, SharedImageCropperModule, SharedVerificationCodeModule, SharedVerificationComponent, StatusBannerComponent, StatusIconComponent, StatusPosition, StatusTypes, SubmitOnEnterDirective, TelErrorsComponent, TelInputComponent, TelInputModule, TextBoxComponent, TextHighlightDirective, TextListComponent, TextListModule, TimeRangeValidator, ToastComponent, ToastService, ToastrDescription, ToastrPosition, ToastrSeverity, ToggleComponent, ToggleModule, ToggleVariants, ToolbarComponent, TooltipComponent, TooltipDirectionPreference, TooltipDirective, TooltipModule, TypeaheadFieldComponent, TypeaheadFieldModule, TypeaheadResultComponent, TypeaheadResultsGroup, UpdateLLMPreferencePipe, UserMenuComponent, VerificationCodeScreenComponent, applyBrandTheme, calculateGlobeSize, dateInCurrentWeek, generateGlobeCanvasId, sanitizeStyleNullNumbers, scoreColorExpression, scoreGlowExpression, scoreSizeExpression, scoreStrokeExpression };
export type { AuthIcons, IAuthModel as AuthModel, BrandThemeColors, ICardBrand as CardBrand, ICardDetails as CardDetails, IChangeData as ChangeData, ColumnManagementData, Content, ICountry as Country, ICroppedImageModel as CroppedImageModel, EditorContent, IEmojiPickerConfig as EmojiPickerConfig, IFilterDataRequest as FilterDataRequest, IFilterDefinition as FilterDefinition, IFooterTabModel as FooterTabModel, IForgetPasswordForm as ForgetPasswordForm, IGlassChipIds as GlassChipIds, IGridColumn as GridColumn, IGridColumnChange as GridColumnChange, GridControlType, IGridDataRequest as GridDataRequest, IGridFilterConfig as GridFilterConfig, IGridKeyValueDto as GridKeyValueDto, IGridMiscellaneousData as GridMiscellaneousData, IGridRow as GridRow, GridSortDirection, IAuthModel, IAuthRouteParams, IBaseContentCard, IBusinessHoursData, IBusynessData, IBusynessEntry, ICardBrand, ICardDetails, IChangeData, IContactInfo, ICountry, ICroppedImageModel, ICyranoMapConfig, ICyranoMapModules, ICyranoMapOptions, IDashboardClientMatcher, IDashboardClientProspect, IDashboardClientRequest, IDashboardMatcherClient, IDateFormats, IDefaultLocationConfig, IDeviceMotionType, IDiscoveryLogEntry, IDrawingModuleConfig, IEmojiPickerConfig, IEnrichmentModuleConfig, IErrorMessageConfig, IEventSchedule, IFeedbackData, IFeedbackFormBuild, IFeedbackPopupConfig, IFilterDataRequest, IFilterDefinition, IFooterTabModel, IForgetPasswordForm, IFormError, IGemJourney, IGemJourneyStage, IGemPinModuleConfig, IGlobe, IGlobeAssets, IGlobeMarker, IGlobeSyncModuleConfig, IGridColumn, IGridColumnChange, IGridDataRequest, IGridFilterConfig, IGridFilterOption, IGridKeyValueDto, IGridMiscellaneousData, IGridRow, IInsiderTip, IInsightsIcons, IJSONEditorInterface, ILanguage, ILargeFileWarningParams, ILibMapModuleConfig, ILibMenuItem, IListboxValueChangeEvent, ILlmLogSummary, ILocationAutocompleteConfig, ILocationCoordinates, ILocationModel, ILocationSearchResult, ILoginForm, ILowerUpper, IMapActionEvent, IMapLibConfig, IMapMarkerModel, IMapsAlertModel, IMasonrySize, IMenuItem, IModalCloseResult, INicheSynergyEntry, INotificationActivity, INotificationIcon, INotificationItem, INotificationSimple, INotificationsList, IPageLayoutFilterChip, IPersistLogSummary, IPhoneDetails, IPinLayerModuleConfig, IPipelineLogEntry, IPlace, IPlaceDetailConfig, IPlaceDetailData, IPlaceQuery, IPopperInstance, IPopupModal, IPosition, IPreferencesSummary, IProfile, IResetPasswordForm, IResolvedLocation, IReviewItem, IRichText, IRouteParams, IRoutingModuleConfig, IScanJobSummary, IScoreSummary, IScoringRow, ISearchTermHit, ISourceSummary, IStatusMessage, IText, ITheme, ITimeSlot, ITimeSlotHours, IToggleGraphics, ITreeNode, ITripAdvisorPlace, ITripAdvisorSearchResult, IUploadResult, IUserFilter, ImageCropperModel, ImageUploadData, InjectableFormField, InsightsLayoutConfig, InsightsProgressBarConfig, JsonArray, JsonObject, JsonPrimitive, JsonValue, ILanguage as Language, ILibMenuItem as LibMenuItem, IListboxValueChangeEvent as ListboxValueChangeEvent, ILocationAutocompleteConfig as LocationAutocompleteConfig, ILocationCoordinates as LocationCoordinates, ILocationModel as LocationModel, ILoginForm as LoginForm, IManageFiltersModalMiscellaneousData as ManageFiltersModalMiscellaneousData, IMapActionEvent as MapActionEvent, MapAddressType, IMapCircleItem as MapCircleItem, IMapMarkerModel as MapMarkerModel, MapObjectAddressType, IMapsAlertModel as MapsAlertModel, IMasonrySize as MasonrySize, IModalCloseResult as ModalCloseResult, IPageLayoutFilterChip as PageLayoutFilterChip, IPhoneDetails as PhoneDetails, IPlace as Place, PlaceDetailMode, PlaceDetailTab, IPlaceQuery as PlaceQuery, IPopupModal as PopupModal, PositionCallback, PrimeNgEditEvent, IProfile as Profile, IResetPasswordForm as ResetPasswordForm, RichTextToolbarAction, ScoreTierConfig, ISelectFilterGridMiscellaneousData as SelectFilterGridMiscellaneousData, IStatusMessage as StatusMessage, ITheme as Theme, ITimeSlot as TimeSlot, ITimeSlotHours as TimeSlotHours, IToasterConfig as ToasterConfig, IToastrActionEvent as ToastrActionEvent, ToastrStackConfig, IToggleCircleMask as ToggleCircleMask, IToggleGraphics as ToggleGraphics, IUserFilter as UserFilter, WorkerResponse };
