import { EventEmitter } from '../../stencil-public-runtime';
import { MeetingMode } from '../rtk-meeting/rtk-meeting';
import { Meeting } from '../../types/rtk-client';
import { RtkI18n, IconPack, States, UIConfig, Overrides } from '../../exports';
export declare class RtkUiProvider {
    host: HTMLRtkUiProviderElement;
    private peerStore;
    private providerId;
    private storeRequestListener;
    private stateUpdateListener;
    /** Meeting */
    meeting: Meeting | null;
    /** Icon pack */
    iconPack: IconPack;
    /** Language utility */
    t: RtkI18n;
    /** Config */
    config: UIConfig;
    /** Fill type */
    mode: MeetingMode;
    /** Whether to show setup screen or not */
    showSetupScreen: boolean;
    /** 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 updateStates;
    private setupStateUpdateListener;
    private setupStoreRequestListener;
    meetingChanged(meeting: Meeting, oldMeeting?: Meeting): void;
    iconPackChanged(newIconPack: IconPack): void;
    tChanged(newT: RtkI18n): void;
    configChanged(config: UIConfig): void;
    overridesChanged(overrides: Overrides): void;
    private roomJoinedListener;
    private waitlistedListener;
    private roomLeftListener;
    private mediaPermissionUpdateListener;
    private socketConnectionUpdateListener;
    private handleChangingMeeting;
    render(): any;
}
