import { AccountProfile, Cluster, ClusterConfig, ClusterType, EngageClient, EngageConfiguration, SignIn } from "@theoplayer/react-native-engage";
import { DefaultEventDispatcher } from "./event/DefaultEventDispatcher";
import { EngageEventMap } from "../api/EngageEvent";
import { Subscription } from "../api/entities/Subscription";
export declare class DefaultEngageClient extends DefaultEventDispatcher<EngageEventMap> implements EngageClient {
    private _emitter;
    private _configuration;
    private _eventDispatcher;
    private _clusters;
    private readonly _onReady;
    constructor(configuration: EngageConfiguration, onReady: (client: EngageClient) => void);
    getCluster(type: ClusterType, config?: ClusterConfig): Cluster;
    clearCluster(type: ClusterType): void;
    setSignInEntity(entity?: SignIn): void;
    setSubscription(accountProfile: AccountProfile, subscription?: Subscription): void;
    /**
     * Request to publish the given cluster.
     *
     * @param cluster either a "Continuation" (or "Continue Watching"), "Featured", or "Recommendation" cluster.
     *
     * @remarks
     * <br/> - Any previously set list is replaced, there is no need to remove the old list first.
     * <br/> - The content can be unpersonalized if 'guest' sessions are supported.
     */
    publish(cluster: Cluster): void;
    private onEngageReady;
    private onError;
    destroy(): void;
}
//# sourceMappingURL=DefaultEngageClient.d.ts.map