///
import { EventEmitter } from 'events';
import Rpc from '../rpc';
import { KurentoEventType } from '../types/kurento-event';
import { LogType } from '../logger';
import { MediaType } from '../types';
export default class BaseElement extends EventEmitter {
protected objId: string;
protected rpc: Rpc;
protected logger: LogType;
constructor(objId: string);
getObjectId(): string;
subscribe(event: KurentoEventType): Promise;
unsubscribe(subscription: string, event: KurentoEventType): Promise<{
sessionId: string;
} | null>;
describe(): Promise<{
hierarchy: string[];
qualifiedType: string;
type: string;
} | null>;
release(): Promise<{
sessionId: string;
} | null>;
getSourceConnections(mediaType: MediaType): Promise<{
type: "AUDIO" | "VIDEO" | "DATA";
source: string;
sink: string;
sourceDescription: string | null;
sinkDescription: string | null;
}[] | undefined>;
getSinkConnections(mediaType: MediaType): Promise<{
type: "AUDIO" | "VIDEO" | "DATA";
source: string;
sink: string;
sourceDescription: string | null;
sinkDescription: string | null;
}[] | undefined>;
}