import { ActionQueue } from '../utils/action-queue';
import { IMetaData, Store } from '@connector/utils';
import { StoreState } from '../types/store';
import { IExtraParams } from '../constants/global-constants';
export interface IConnectorType {
    id: string;
    name: string;
    isEnabled: boolean;
}
export interface IBaseUrls {
    [key: string]: string;
}
export interface IAvailableFtr {
    [key: string]: boolean;
}
export interface ICurrentOption {
    [key: string]: 'open' | 'closed';
}
export interface ITrackingData {
    [key: string]: any;
}
export interface ConnectorFunctions {
    redirectToAdmin: (connectorId?: string, queryParams?: Record<string, string | number | boolean>) => void;
    getFormElement?: () => HTMLElement | null;
    toggleFormElement?: (state: boolean) => void;
}
export interface StackingContext {
    expandedForm?: number;
    toastMessage?: number;
}
export interface IMainAppContext extends IExtraParams {
    userEmail: string;
    email: string;
    baseUrls: IBaseUrls;
    currentSmIds: string[];
    metaData?: IMetaData;
    sendTrackingEvent: (event: string, data?: ITrackingData) => void;
    availableFeatures?: IAvailableFtr;
    conversationId?: number;
    isAdmin?: boolean;
    connectorFunctions: ConnectorFunctions;
    stackingContext: StackingContext;
    actionQueue?: ActionQueue;
    store?: Store<StoreState>;
    connectorId?: string;
}
export declare const defaultMainAppvalues: IMainAppContext;
export declare const MainAppContext: import('react').Context<IMainAppContext>;
//# sourceMappingURL=index.d.ts.map