import { BehaviorSubject, Observable, Subject } from 'rxjs';
import { Select } from '../custom-select';
export declare type IPopupSettings = {
    type?: string;
    title?: string;
    subtitle?: string;
    body?: string;
    fields?: Array<PopupFields>;
    center?: boolean;
    buttons?: Array<PopupButtons> | false;
    buttonsPosition?: ButtonsPosition;
    geoObject?: geoObject;
    geoObjectSSP?: geoObjectSSP;
    autoLinking?: any;
    dataObject?: any;
    sizeObject?: any;
    cridObject?: any;
    includeType?: boolean;
    spinner?: boolean;
    closeButton?: boolean;
    overlayTheme?: string;
    width?: 'lg' | 'md' | 'sm' | 'xs';
    height?: 'lg' | 'md' | 'sm';
    activityDisabled?: boolean;
    overflow?: string;
    limitSelection?: number;
    allowedMimeTypes?: Array<string>;
    itemType?: string;
    sortField?: string;
    uploadSwitcher?: string | boolean;
    isShowMoreAvailable?: Observable<boolean>;
    showFilter?: boolean;
    isSearchDelay?: boolean;
    offsetHandler?: (offset: number) => void;
    searchHandler?: (text: string) => void;
};
export declare namespace IPopupDefault {
    type Width = {
        large: 'lg';
        medium: 'md';
        small: 'sm';
    };
    type Buttons = {
        cancel: PopupButtons;
        ok: PopupButtons;
        archive: PopupButtons;
        create: PopupButtons;
        save: PopupButtons;
    };
}
export declare type PopupButtons = {
    class: string;
    text: string;
    event: string;
    additionalClass?: string;
};
export declare type ButtonsPosition = 'right' | 'center' | 'left';
export declare type PopupFields = {
    label?: string;
    type: string;
    name: string;
    required?: boolean;
    placeholder?: string;
    value?: string;
    options?: Array<Select>;
    search?: boolean;
    validators?: Array<any>;
    selected?: any;
    confirmationSwitcher?: boolean;
    isSetAutofocusToInput?: boolean;
    on?: any;
    hidden?: boolean;
    showQuantityButton?: boolean;
    class?: string;
    radios?: Array<{
        id: string;
        value: string;
        name: string;
    }>;
    description?: string;
    format?: string;
    hiddenOnDefault?: boolean;
    showControlName?: string;
    showControlValue?: string;
};
declare type geoObject = {
    countriesStream: BehaviorSubject<any>;
    statesStream: BehaviorSubject<any>;
    citiesStream: BehaviorSubject<any>;
    initialValues: Array<any>;
};
declare type geoObjectSSP = {
    countriesStream: BehaviorSubject<any>;
    statesStream: BehaviorSubject<any>;
    citiesStream: BehaviorSubject<any>;
    initialValues: Array<any>;
};
export declare type OptionsConfigTypePopup = {
    optionsSubject?: Subject<Array<any>>;
    displayProperty?: string;
    outputProperty?: string;
    backgroundProperty?: string;
};
export declare type LabelsListType = Array<{
    [key: string]: string;
}>;
export {};
