import { Capability, IOpenIDUpdate, ISendDelayedEventDetails, ISendEventDetails, ITurnServer, IReadEventRelationsResult, IRoomEvent, SimpleObservable, Symbols, Widget, WidgetDriver, WidgetKind, ISearchUserDirectoryResult, IGetMediaConfigResult, UpdateDelayedEventAction } from "matrix-widget-api";
import { StateEvents, TimelineEvents } from "matrix-js-sdk/src/matrix";
export declare class StopGapWidgetDriver extends WidgetDriver {
    private forWidget;
    private forWidgetKind;
    private inRoomId?;
    private allowedCapabilities;
    constructor(allowedCapabilities: Capability[], forWidget: Widget, forWidgetKind: WidgetKind, virtual: boolean, inRoomId?: string | undefined);
    validateCapabilities(requested: Set<Capability>): Promise<Set<Capability>>;
    sendEvent<K extends keyof StateEvents>(eventType: K, content: StateEvents[K], stateKey: string | null, targetRoomId: string | null): Promise<ISendEventDetails>;
    sendEvent<K extends keyof TimelineEvents>(eventType: K, content: TimelineEvents[K], stateKey: null, targetRoomId: string | null): Promise<ISendEventDetails>;
    /**
     * @experimental Part of MSC4140 & MSC4157
     * @see {@link WidgetDriver#sendDelayedEvent}
     */
    sendDelayedEvent<K extends keyof StateEvents>(delay: number | null, parentDelayId: string | null, eventType: K, content: StateEvents[K], stateKey: string | null, targetRoomId: string | null): Promise<ISendDelayedEventDetails>;
    /**
     * @experimental Part of MSC4140 & MSC4157
     */
    sendDelayedEvent<K extends keyof TimelineEvents>(delay: number | null, parentDelayId: string | null, eventType: K, content: TimelineEvents[K], stateKey: null, targetRoomId: string | null): Promise<ISendDelayedEventDetails>;
    /**
     * @experimental Part of MSC4140 & MSC4157
     */
    updateDelayedEvent(delayId: string, action: UpdateDelayedEventAction): Promise<void>;
    sendToDevice(eventType: string, encrypted: boolean, contentMap: {
        [userId: string]: {
            [deviceId: string]: object;
        };
    }): Promise<void>;
    private pickRooms;
    readRoomEvents(eventType: string, msgtype: string | undefined, limitPerRoom: number, roomIds?: (string | Symbols.AnyRoom)[]): Promise<IRoomEvent[]>;
    readStateEvents(eventType: string, stateKey: string | undefined, limitPerRoom: number, roomIds?: (string | Symbols.AnyRoom)[]): Promise<IRoomEvent[]>;
    askOpenID(observer: SimpleObservable<IOpenIDUpdate>): Promise<void>;
    navigate(uri: string): Promise<void>;
    getTurnServers(): AsyncGenerator<ITurnServer>;
    readEventRelations(eventId: string, roomId?: string, relationType?: string, eventType?: string, from?: string, to?: string, limit?: number, direction?: "f" | "b"): Promise<IReadEventRelationsResult>;
    searchUserDirectory(searchTerm: string, limit?: number): Promise<ISearchUserDirectoryResult>;
    getMediaConfig(): Promise<IGetMediaConfigResult>;
    uploadFile(file: XMLHttpRequestBodyInit): Promise<{
        contentUri: string;
    }>;
}
