import { type ReconnectConfig } from "@fishjam-cloud/ts-client";
import { type PropsWithChildren } from "react";
import type { BandwidthLimits, PersistLastDeviceHandlers, StreamConfig } from "./types/public";
/**
 * @category Components
 */
export interface FishjamProviderProps extends PropsWithChildren {
    /**
     * Use {@link ReconnectConfig} to adjust reconnection policy to your needs or set false it.
     * Set to true by default.
     */
    reconnect?: ReconnectConfig | boolean;
    /**
     * Set preferred constraints.
     * @param {MediaStreamConstraints} constraints - The media stream constraints as defined by the Web API.
     * @see {@link https://udn.realityripple.com/docs/Web/API/MediaStreamConstraints MediaStreamConstraints}
     */
    constraints?: Pick<MediaStreamConstraints, "audio" | "video">;
    /**
     * Decide if you want Fishjam SDK to persist last used device in the local storage.
     * You can also provide your getter and setter by using the {@link PersistLastDeviceHandlers} interface.
     */
    persistLastDevice?: boolean | PersistLastDeviceHandlers;
    /**
     * Adjust max bandwidth limit for a single stream and simulcast.
     */
    bandwidthLimits?: Partial<BandwidthLimits>;
    /**
     * Configure whether to use video simulcast and which layers to send if so.
     */
    videoConfig?: StreamConfig;
    /**
     * Configure whether to use audio simulcast and which layers to send if so.
     */
    audioConfig?: StreamConfig;
}
/**
 * Provides the Fishjam Context
 * @category Components
 */
export declare function FishjamProvider(props: FishjamProviderProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=FishjamProvider.d.ts.map