///
import { EventEmitter } from 'events';
import { PeripheralDeviceStatusObject, PeripheralDeviceSubType } from '@sofie-automation/shared-lib/dist/peripheralDevice/peripheralDeviceAPI';
import { PeripheralDeviceAPIMethods } from '@sofie-automation/shared-lib/dist/peripheralDevice/methodsAPI';
import { DDPConnector } from './ddpConnector';
import { Observer } from './ddpClient';
import { PeripheralDeviceId } from '@sofie-automation/shared-lib/dist/core/model/Ids';
import { ExternalPeripheralDeviceAPI } from './methods';
import { PeripheralDeviceForDevice } from '@sofie-automation/shared-lib/dist/core/model/peripheralDevice';
import { CoreConnection, Collection, CoreOptions, CollectionDocCheck } from './coreConnection';
import { ParametersOfFunctionOrNever, SubscriptionId } from './subscriptions';
import { PeripheralDevicePubSubCollections, PeripheralDevicePubSubTypes } from '@sofie-automation/shared-lib/dist/pubsub/peripheralDevice';
export interface ChildCoreOptions {
deviceId: PeripheralDeviceId;
/**
* SubType of the connection
*/
deviceSubType: PeripheralDeviceSubType;
/**
* Name of the device
* eg 'MOS Gateway'
*/
deviceName: string;
}
export type ChildCoreConnectionEvents = {
error: [err: Error | string];
};
export declare class CoreConnectionChild extends EventEmitter {
private _parent;
private _parentOptions;
private _coreOptions;
private _methodQueue;
private _subscriptions;
private _pinger;
private _destroyed;
private _peripheralDeviceApi;
private _peripheralDeviceApiLowPriority;
constructor(coreOptions: ChildCoreOptions);
private doTriggerPing;
init(parent: CoreConnection, parentOptions: CoreOptions): Promise;
destroy(): Promise;
get parent(): CoreConnection;
get ddp(): DDPConnector;
get connected(): boolean;
get deviceId(): PeripheralDeviceId;
get coreMethods(): ExternalPeripheralDeviceAPI;
get coreMethodsLowPriority(): ExternalPeripheralDeviceAPI;
setStatus(status: PeripheralDeviceStatusObject): Promise;
/**
* This should not be used directly, use the `coreMethods` wrapper instead.
* Call a meteor method
* @param methodName The name of the method to call
* @param attrs Parameters to the method
* @returns Resopnse, if any
*/
callMethodRaw(methodName: string, attrs: Array): Promise;
callMethodLowPrioRaw(methodName: PeripheralDeviceAPIMethods | string, attrs: Array): Promise;
unInitialize(): Promise;
getPeripheralDevice(): Promise;
getCollection(collectionName: K): Collection>;
/**
* Subscribe to a DDP publication
* Upon reconnecting to Sofie, this publication will be restarted
*/
autoSubscribe(publicationName: Key, ...params: ParametersOfFunctionOrNever): Promise;
/**
* Unsubscribe from subscription to a DDP publication
*/
unsubscribe(subscriptionId: SubscriptionId): void;
/**
* Unsubscribe from all subscriptions to DDP publications
*/
unsubscribeAll(): void;
observe(collectionName: K): Observer>;
private _emitError;
private _sendInit;
}
//# sourceMappingURL=CoreConnectionChild.d.ts.map