import { ProtectedString } from '@sofie-automation/shared-lib/dist/lib/protectedString';
import type { DDPConnector } from './ddpConnector';
export type SubscriptionId = ProtectedString<'SubscriptionId'>;
export type ParametersOfFunctionOrNever<T> = T extends (...args: any[]) => any ? Parameters<T> : never;
export declare class SubscriptionsHelper<PubSubTypes> {
    #private;
    private readonly emitError;
    constructor(emitError: (err: string) => void, ddp: DDPConnector, deviceToken: string);
    subscribeOnce<Key extends keyof PubSubTypes>(publicationName: Key, ...params: ParametersOfFunctionOrNever<PubSubTypes[Key]>): Promise<SubscriptionId>;
    private subscribeWithId;
    autoSubscribe<Key extends keyof PubSubTypes>(publicationName: Key, ...params: ParametersOfFunctionOrNever<PubSubTypes[Key]>): Promise<SubscriptionId>;
    unsubscribe(subscriptionId: SubscriptionId): void;
    renewAutoSubscriptions(): void;
    unsubscribeAll(): void;
}
//# sourceMappingURL=subscriptions.d.ts.map