import { MediaPacketCallback } from './sesame-connection';
import { RPCClient } from './rpc-client';
import { sesame } from './proto/api';
import { CommandList } from './command-list';
import { EventEmitter } from 'events';
import { StatusApi } from './status-api';
import { RecorderApi } from './recorder-api';
import { JobsApi } from './jobs-api';
export { StatusApi } from './status-api';
export { RecorderApi } from './recorder-api';
export { JobsApi } from './jobs-api';
export declare enum EaseKind {
    STEPPED = "stepped",
    LINEAR = "linear",
    QUADRATIC_IN = "quadraticIn",
    QUADRATIC_OUT = "quadraticOut",
    QUADRATIC_INOUT = "quadraticInOut",
    CUBIC_IN = "cubicIn",
    CUBIC_OUT = "cubicOut",
    CUBIC_INOUT = "cubicInOut",
    QUARTIC_IN = "quarticIn",
    QUARTIC_OUT = "quarticOut",
    QUARTIC_INOUT = "quarticInOut",
    QUINTIC_IN = "quinticIn",
    QUINTIC_OUT = "quinticOut",
    QUINTIC_INOUT = "quinticInOut",
    SINUSOIDAL_IN = "sinusoidalIn",
    SINUSOIDAL_OUT = "sinusoidalOut",
    SINUSOIDAL_INOUT = "sinusoidalInOut",
    EXPONENTIAL_IN = "exponentialIn",
    EXPONENTIAL_OUT = "exponentialOut",
    EXPONENTIAL_INOUT = "exponentialInOut",
    CIRCULAR_IN = "circularIn",
    CIRCULAR_OUT = "circularOut",
    CIRCULAR_INOUT = "circularInOut",
    BOUNCE_IN = "bounceIn",
    BOUNCE_OUT = "bounceOut",
    BOUNCE_INOUT = "bounceInOut",
    ELASTIC_IN = "elasticIn",
    ELASTIC_OUT = "elasticOut",
    ELASTIC_INOUT = "elasticInOut",
    BACK_IN = "backIn",
    BACK_OUT = "backOut",
    BACK_INOUT = "backInOut"
}
export interface TopicDataCallback {
    (topic: sesame.v1.common.EventTopic, msg: sesame.v1.status.Event): void;
}
interface CallbackMessage {
    (event: string, data: string): void;
}
export declare class SesameClient extends EventEmitter {
    private conn;
    private rpc;
    private mediaSubscriptionId;
    private subscriptions;
    readonly status: StatusApi;
    readonly recorder: RecorderApi;
    readonly jobs: JobsApi;
    onMediaPacket: MediaPacketCallback;
    onCallbackMessage: CallbackMessage;
    isConnected(): boolean;
    constructor(portOrUrl: number | string);
    private sendSubscriptions;
    addMediaSubscription(id: string): void;
    addSubscription(topic: sesame.v1.common.EventTopic, callback: TopicDataCallback): void;
    removeSubscription(topic: sesame.v1.common.EventTopic, callback: TopicDataCallback): void;
    getService(): RPCClient<sesame.v1.rpc.SesameAPIService>;
    requestKeyframe(outputId: string): Promise<void>;
    execute(cl: CommandList): Promise<void>;
    disconnect(): void;
}
//# sourceMappingURL=sesame-api-client.d.ts.map