import { CastButtonBase } from './cast.common';
import { CastMediaInfo, LoadMediaOptions, LoadQueueOptions, MetadataType, QueueInsertItemOptions, QueueInsertItemsOptions, QueueItemOptions, QueueType, QueueUpdateItemsOptions, RepeatMode, StreamType } from './cast.types';
export declare function metadataTypeEnumToString(metadataType: number): MetadataType;
export declare function metadataTypeStringToEnum(metadataType: MetadataType): number;
export declare function streamTypeEnumToString(streamType: number): StreamType;
export declare function streamTypeStringToEnum(streamType: StreamType): number;
export declare function repeatModeStringToEnum(repeatMode: RepeatMode): number;
export declare function repeatModeEnumToString(repeatMode: number): RepeatMode;
export declare function queueTypeStringToEnum(queueType: QueueType): number;
export declare function queueTypeEnumToString(queueType: number): QueueType;
export declare function convertMediaInfo(mediaInfo: com.google.android.gms.cast.MediaInfo): CastMediaInfo;
export declare class CastButton extends CastButtonBase {
    nativeView: androidx.mediarouter.app.MediaRouteButton;
    mCastContext: com.google.android.gms.cast.framework.CastContext;
    mSessionManager: com.google.android.gms.cast.framework.SessionManager;
    mSessionManagerListener: com.google.android.gms.cast.framework.SessionManagerListener<com.google.android.gms.cast.framework.Session>;
    mRemoteMediaClientCallback: com.google.android.gms.cast.framework.media.RemoteMediaClient.Callback;
    mRemoteMediaClientProgressListener: com.google.android.gms.cast.framework.media.RemoteMediaClient.ProgressListener;
    mMediaQeueuCallback: com.google.android.gms.cast.framework.media.MediaQueue.Callback;
    mMediaRouter: androidx.mediarouter.media.MediaRouter;
    mMediaRouterCallback: androidx.mediarouter.media.MediaRouter.Callback;
    mMediaRouteSelector: androidx.mediarouter.media.MediaRouteSelector;
    constructor();
    createNativeView(): Object;
    getNativeView(): any;
    initNativeView(): void;
    disposeNativeView(): void;
    addMediaRouterCallback(): void;
    removeMediaRouterCallback(): void;
    addSessionManagerListener(): void;
    removeSessionManagerListener(): void;
    addRemoteMediaClientCallback(): void;
    removeRemoteMediaClientCallback(): void;
    addMediaQueueCallback(): void;
    removeMediaQueueCallback(): void;
    addProgressListenenr(): void;
    removeProgressListener(): void;
    getRemoteMediaClient(): com.google.android.gms.cast.framework.media.RemoteMediaClient;
    buildMediaInfo(mediaInfo: CastMediaInfo): com.google.android.gms.cast.MediaInfo;
    buildQueueItem(options: QueueItemOptions): com.google.android.gms.cast.MediaQueueItem;
    loadMedia(media: CastMediaInfo, options?: LoadMediaOptions): void;
    loadQueue(options: LoadQueueOptions): void;
    showController(): void;
    showCastInstructions(title?: string, singleTime?: boolean): void;
    showCastDialog(): void;
    getMediaInfo(): CastMediaInfo;
    pauseMedia(customData?: any): void;
    playMedia(customData?: any): void;
    seekMedia(position: number, resumeState?: number, customData?: any): void;
    stopMedia(customData?: any): void;
    setActiveTrackIds(trackIds: number[]): void;
    setTintColor(): void;
    setVolume(volume: number, customData: any): void;
    setMuted(muted: boolean, customData: any): void;
    queueNextItem(): void;
    queuePreviousItem(): void;
    queueSetRepeatMode(repeatMode: RepeatMode): void;
    queueFetchItemIDs(): void;
    queueFetchItemAtIndex(index: number): void;
    queueInsertItem(options: QueueInsertItemOptions): void;
    queueInsertItems(options: QueueInsertItemsOptions): void;
    queueRemoveItems(itemIDs: number[], customData: any): void;
    queueReorderItems(itemIDs: number[], beforeItemID: number, customData: any): void;
    queueJumpToItem(itemID: number, playPosition: number, customData: any): void;
    queueUpdateItems(options: QueueUpdateItemsOptions): void;
    onMediaStatusUpdate(): void;
}
