import { EventEmitter } from '../../stencil-public-runtime';
import { Size, States } from '../../types/props';
import { Meeting } from '../../types/rtk-client';
import { RtkI18n } from '../../lib/lang';
import { IconPack } from '../../lib/icons';
import { UIConfig } from '../../types/ui-config';
import { GridLayout } from '../rtk-grid/rtk-grid';
import { Overrides } from '../../lib/overrides';
export type MeetingMode = 'fixed' | 'fill';
/**
 * A single component which renders an entire meeting UI.
 *
 * It loads your preset and renders the UI based on it.
 * With this component, you don't have to handle all the states,
 * dialogs and other smaller bits of managing the application.
 */
export declare class RtkMeeting {
    private resizeObserver;
    private leaveRoomTimer;
    /** Since RtkMeeting by design works as a provider for component, to be in sync with other providers, added provider id */
    private providerId;
    private roomJoinedListener;
    private waitlistedListener;
    private roomLeftListener;
    private mediaPermissionUpdateListener;
    private socketConnectionUpdateListener;
    host: HTMLRtkMeetingElement;
    private stateUpdateListener;
    private storeRequestListener;
    private peerStore;
    /** Whether to load config from preset */
    loadConfigFromPreset: boolean;
    /** Whether to apply the design system on the document root from config */
    applyDesignSystem: boolean;
    /** Fill type */
    mode: MeetingMode;
    /** Whether participant should leave when this component gets unmounted */
    leaveOnUnmount: boolean;
    /** Meeting object */
    meeting: Meeting;
    /** Whether to show setup screen or not */
    showSetupScreen: boolean;
    /** Language */
    t: RtkI18n;
    /** UI Config */
    config: UIConfig;
    /** Size */
    size: Size;
    /** Grid layout */
    gridLayout: GridLayout;
    /** Icon pack */
    iconPack: IconPack;
    /** UI Kit Overrides */
    overrides: Overrides;
    /**
     * Emits `rtkStatesUpdate` so that developers can listen to onRtkStatesUpdate and update their own stores
     * Do not confuse this with `rtkStateUpdate` that other components emit
     */
    statesUpdate: EventEmitter<States>;
    private authErrorListener;
    connectedCallback(): void;
    disconnectedCallback(): void;
    private setupStoreRequestListener;
    private setupStateUpdateListener;
    private clearListeners;
    meetingChanged(meeting: Meeting, oldMeeting?: Meeting): void;
    private handleChangingMeeting;
    iconPackChanged(newIconPack: IconPack): void;
    tChanged(newT: RtkI18n): void;
    configChanged(config: UIConfig): void;
    overridesChanged(overrides: Overrides): void;
    private handleResize;
    private updateStates;
    render(): any;
}
