import { HCSSDK, LoadQueueItem, HCSConfigMapping, HCSConfig, LoadType } from './types';
export declare const sleep: (ms: number) => Promise<unknown>;
export declare class HCS implements HCSSDK {
    config: HCSConfig;
    configMapping: HCSConfigMapping;
    LoadedScripts: Record<string, string>;
    LoadedWasm: Record<string, WebAssembly.Instance>;
    LoadedImages: Record<string, string>;
    LoadedVideos: Record<string, string>;
    LoadedAudios: Record<string, HTMLAudioElement>;
    LoadedAudioUrls: Record<string, string>;
    LoadedGLBs: Record<string, string>;
    scriptLoadedEvent: Event;
    loadQueue: LoadQueueItem[];
    isProcessingQueue: boolean;
    private modelViewerLoaded;
    private modelViewerLoading;
    private logger;
    constructor();
    private createFallbackLogger;
    log(...args: any[]): void;
    error(...args: any[]): void;
    loadConfigFromHTML(): void;
    updateLoadingStatus(id: string, status: string): void;
    fetchWithRetry(url: string, retries?: number, backoff?: number): Promise<Response>;
    sleep(ms: number): Promise<unknown>;
    isDuplicate(topicId: string): boolean;
    retrieveHCS1Data(topicId: string, cdnUrl?: string, network?: string): Promise<Blob>;
    loadScript(scriptElement: HTMLElement): Promise<void>;
    loadModuleExports(scriptId: string): Promise<any>;
    loadStylesheet(linkElement: HTMLElement): Promise<void>;
    loadImage(imageElement: HTMLElement): Promise<void>;
    loadMedia(mediaElement: HTMLElement, mediaType: 'video' | 'audio'): Promise<void>;
    private loadModelViewer;
    loadGLB(glbElement: HTMLElement): Promise<void>;
    loadResource(element: HTMLElement, type: LoadType, order: number): Promise<void>;
    processQueue(): Promise<void>;
    private replaceHCSInStyle;
    private processInlineStyles;
    init(): Promise<void>;
    preloadImage(topicId: string): Promise<string>;
    preloadAudio(topicId: string): Promise<string>;
    playAudio(topicId: string, volume?: number): Promise<void>;
    pauseAudio(topicId: string): Promise<void>;
    loadAndPlayAudio(topicId: string, autoplay?: boolean, volume?: number): Promise<void>;
}
//# sourceMappingURL=index.d.ts.map