import { IDeviceConfig } from "../config";
import { RecordingConfiguration, RecordingReference, TrackConfiguration, TrackReference, RecordingJobConfiguration, RecordingJobReference, RecordingJobMode, SearchScope, StorageReferencePath, ReferenceToken } from "./types";
export declare class ONVIFRecording {
    private config;
    constructor(config: IDeviceConfig);
    /**
     * Returns the capabilities of the recording service. The result is returned in a typed answer.
     */
    static GetServiceCapabilities(): import("typescript-monads").IReader<IDeviceConfig, import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>>;
    /**
     * CreateRecording shall create a new recording. The new recording shall be created with a track
     *                                   for each supported TrackType see Recording Control Spec.
     *   This method is optional. It shall be available if the Recording/DynamicRecordings capability is TRUE.
     *   When successfully completed, CreateRecording shall have created three tracks with the following configurations:
     *
     *   TrackToken TrackType
     *
     *   VIDEO001 Video
     *
     *   AUDIO001 Audio
     *
     *   META001 Metadata
     *
     *   All TrackConfigurations shall have the MaximumRetentionTime set to 0 (unlimited), and the
     *   Description set to the empty string.
     *
     */
    static CreateRecording(RecordingConfiguration: RecordingConfiguration): import("typescript-monads").IReader<IDeviceConfig, import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>>;
    /**
     * DeleteRecording shall delete a recording object. Whenever a recording is deleted, the device
     *   shall delete all the tracks that are part of the recording, and it shall delete all the Recording
     *   Jobs that record into the recording. For each deleted recording job, the device shall also
     *   delete all the receiver objects associated with the recording job that are automatically created
     *   using the AutoCreateReceiver field of the recording job configuration structure and are not
     *   used in any other recording job.
     *   This method is optional. It shall be available if the Recording/DynamicRecordings capability is TRUE.
     *
     */
    static DeleteRecording(RecordingToken: RecordingReference): import("typescript-monads").IReader<IDeviceConfig, import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>>;
    /**
     * GetRecordings shall return a description of all the recordings in the device. This description
     *   shall include a list of all the tracks for each recording.
     */
    static GetRecordings(): import("typescript-monads").IReader<IDeviceConfig, import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>>;
    /**
     * SetRecordingConfiguration shall change the configuration of a recording.
     */
    static SetRecordingConfiguration(RecordingToken: RecordingReference, RecordingConfiguration: RecordingConfiguration): import("typescript-monads").IReader<IDeviceConfig, import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>>;
    /**
     * GetRecordingConfiguration shall retrieve the recording configuration for a recording.
     */
    static GetRecordingConfiguration(RecordingToken: RecordingReference): import("typescript-monads").IReader<IDeviceConfig, import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>>;
    /**
     * GetRecordingOptions returns information for a recording identified by the RecordingToken. The information includes the number of additonal tracks as well as recording jobs that can be configured.
     */
    static GetRecordingOptions(RecordingToken: RecordingReference): import("typescript-monads").IReader<IDeviceConfig, import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>>;
    /**
     * This method shall create a new track within a recording.
     *   This method is optional. It shall be available if the Recording/DynamicTracks capability is TRUE.
     *   A TrackToken in itself does not uniquely identify a specific track. Tracks within different
     *   recordings may have the same TrackToken.
     *
     */
    static CreateTrack(RecordingToken: RecordingReference, TrackConfiguration: TrackConfiguration): import("typescript-monads").IReader<IDeviceConfig, import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>>;
    /**
     * DeleteTrack shall remove a track from a recording. All the data in the track shall be deleted.
     *   This method is optional. It shall be available if the Recording/DynamicTracks capability is
     *   TRUE.
     */
    static DeleteTrack(RecordingToken: RecordingReference, TrackToken: TrackReference): import("typescript-monads").IReader<IDeviceConfig, import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>>;
    /**
     * GetTrackConfiguration shall retrieve the configuration for a specific track.
     */
    static GetTrackConfiguration(RecordingToken: RecordingReference, TrackToken: TrackReference): import("typescript-monads").IReader<IDeviceConfig, import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>>;
    /**
     * SetTrackConfiguration shall change the configuration of a track.
     */
    static SetTrackConfiguration(RecordingToken: RecordingReference, TrackToken: TrackReference, TrackConfiguration: TrackConfiguration): import("typescript-monads").IReader<IDeviceConfig, import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>>;
    /**
     * CreateRecordingJob shall create a new recording job.
     *   The JobConfiguration returned from CreateRecordingJob shall be identical to the
     *   JobConfiguration passed into CreateRecordingJob, except for the ReceiverToken and the
     *   AutoCreateReceiver. In the returned structure, the ReceiverToken shall be present and valid
     *   and the AutoCreateReceiver field shall be omitted.
     *
     */
    static CreateRecordingJob(JobConfiguration: RecordingJobConfiguration): import("typescript-monads").IReader<IDeviceConfig, import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>>;
    /**
     * DeleteRecordingJob removes a recording job. It shall also implicitly delete all the receiver
     *   objects associated with the recording job that are automatically created using the
     *   AutoCreateReceiver field of the recording job configuration structure and are not used in any
     *   other recording job.
     */
    static DeleteRecordingJob(JobToken: RecordingJobReference): import("typescript-monads").IReader<IDeviceConfig, import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>>;
    /**
     * GetRecordingJobs shall return a list of all the recording jobs in the device.
     */
    static GetRecordingJobs(): import("typescript-monads").IReader<IDeviceConfig, import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>>;
    /**
     * SetRecordingJobConfiguration shall change the configuration for a recording job.
     *   SetRecordingJobConfiguration shall implicitly delete any receiver objects that were created
     *   automatically if they are no longer used as a result of changing the recording job configuration.
     *
     */
    static SetRecordingJobConfiguration(JobToken: RecordingJobReference, JobConfiguration: RecordingJobConfiguration): import("typescript-monads").IReader<IDeviceConfig, import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>>;
    /**
     * GetRecordingJobConfiguration shall return the current configuration for a recording job.
     */
    static GetRecordingJobConfiguration(JobToken: RecordingJobReference): import("typescript-monads").IReader<IDeviceConfig, import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>>;
    /**
     * SetRecordingJobMode shall change the mode of the recording job. Using this method shall be
     *   equivalent to retrieving the recording job configuration, and writing it back with a different
     *   mode.
     */
    static SetRecordingJobMode(JobToken: RecordingJobReference, Mode: RecordingJobMode): import("typescript-monads").IReader<IDeviceConfig, import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>>;
    /**
     * GetRecordingJobState returns the state of a recording job. It includes an aggregated state,
     *   and state for each track of the recording job.
     */
    static GetRecordingJobState(JobToken: RecordingJobReference): import("typescript-monads").IReader<IDeviceConfig, import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>>;
    /**
     *
     *   Exports the selected recordings (from existing recorded data) to the given storage target based on the requested file format.
     *
     */
    static ExportRecordedData(SearchScope: SearchScope, FileFormat: string, StorageDestination: StorageReferencePath, StartPoint?: string, EndPoint?: string): import("typescript-monads").IReader<IDeviceConfig, import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>>;
    /**
     *
     *   Stops the selected ExportRecordedData operation.
     *
     */
    static StopExportRecordedData(OperationToken: ReferenceToken): import("typescript-monads").IReader<IDeviceConfig, import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>>;
    /**
     *
     *   Retrieves the status of selected ExportRecordedData operation.
     *
     */
    static GetExportRecordedDataState(OperationToken: ReferenceToken): import("typescript-monads").IReader<IDeviceConfig, import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>>;
    /**
     * Returns the capabilities of the recording service. The result is returned in a typed answer.
     */
    GetServiceCapabilities(): import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>;
    /**
     * CreateRecording shall create a new recording. The new recording shall be created with a track
     *                                   for each supported TrackType see Recording Control Spec.
     *   This method is optional. It shall be available if the Recording/DynamicRecordings capability is TRUE.
     *   When successfully completed, CreateRecording shall have created three tracks with the following configurations:
     *
     *   TrackToken TrackType
     *
     *   VIDEO001 Video
     *
     *   AUDIO001 Audio
     *
     *   META001 Metadata
     *
     *   All TrackConfigurations shall have the MaximumRetentionTime set to 0 (unlimited), and the
     *   Description set to the empty string.
     *
     */
    CreateRecording(RecordingConfiguration: RecordingConfiguration): import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>;
    /**
     * DeleteRecording shall delete a recording object. Whenever a recording is deleted, the device
     *   shall delete all the tracks that are part of the recording, and it shall delete all the Recording
     *   Jobs that record into the recording. For each deleted recording job, the device shall also
     *   delete all the receiver objects associated with the recording job that are automatically created
     *   using the AutoCreateReceiver field of the recording job configuration structure and are not
     *   used in any other recording job.
     *   This method is optional. It shall be available if the Recording/DynamicRecordings capability is TRUE.
     *
     */
    DeleteRecording(RecordingToken: RecordingReference): import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>;
    /**
     * GetRecordings shall return a description of all the recordings in the device. This description
     *   shall include a list of all the tracks for each recording.
     */
    GetRecordings(): import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>;
    /**
     * SetRecordingConfiguration shall change the configuration of a recording.
     */
    SetRecordingConfiguration(RecordingToken: RecordingReference, RecordingConfiguration: RecordingConfiguration): import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>;
    /**
     * GetRecordingConfiguration shall retrieve the recording configuration for a recording.
     */
    GetRecordingConfiguration(RecordingToken: RecordingReference): import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>;
    /**
     * GetRecordingOptions returns information for a recording identified by the RecordingToken. The information includes the number of additonal tracks as well as recording jobs that can be configured.
     */
    GetRecordingOptions(RecordingToken: RecordingReference): import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>;
    /**
     * This method shall create a new track within a recording.
     *   This method is optional. It shall be available if the Recording/DynamicTracks capability is TRUE.
     *   A TrackToken in itself does not uniquely identify a specific track. Tracks within different
     *   recordings may have the same TrackToken.
     *
     */
    CreateTrack(RecordingToken: RecordingReference, TrackConfiguration: TrackConfiguration): import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>;
    /**
     * DeleteTrack shall remove a track from a recording. All the data in the track shall be deleted.
     *   This method is optional. It shall be available if the Recording/DynamicTracks capability is
     *   TRUE.
     */
    DeleteTrack(RecordingToken: RecordingReference, TrackToken: TrackReference): import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>;
    /**
     * GetTrackConfiguration shall retrieve the configuration for a specific track.
     */
    GetTrackConfiguration(RecordingToken: RecordingReference, TrackToken: TrackReference): import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>;
    /**
     * SetTrackConfiguration shall change the configuration of a track.
     */
    SetTrackConfiguration(RecordingToken: RecordingReference, TrackToken: TrackReference, TrackConfiguration: TrackConfiguration): import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>;
    /**
     * CreateRecordingJob shall create a new recording job.
     *   The JobConfiguration returned from CreateRecordingJob shall be identical to the
     *   JobConfiguration passed into CreateRecordingJob, except for the ReceiverToken and the
     *   AutoCreateReceiver. In the returned structure, the ReceiverToken shall be present and valid
     *   and the AutoCreateReceiver field shall be omitted.
     *
     */
    CreateRecordingJob(JobConfiguration: RecordingJobConfiguration): import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>;
    /**
     * DeleteRecordingJob removes a recording job. It shall also implicitly delete all the receiver
     *   objects associated with the recording job that are automatically created using the
     *   AutoCreateReceiver field of the recording job configuration structure and are not used in any
     *   other recording job.
     */
    DeleteRecordingJob(JobToken: RecordingJobReference): import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>;
    /**
     * GetRecordingJobs shall return a list of all the recording jobs in the device.
     */
    GetRecordingJobs(): import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>;
    /**
     * SetRecordingJobConfiguration shall change the configuration for a recording job.
     *   SetRecordingJobConfiguration shall implicitly delete any receiver objects that were created
     *   automatically if they are no longer used as a result of changing the recording job configuration.
     *
     */
    SetRecordingJobConfiguration(JobToken: RecordingJobReference, JobConfiguration: RecordingJobConfiguration): import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>;
    /**
     * GetRecordingJobConfiguration shall return the current configuration for a recording job.
     */
    GetRecordingJobConfiguration(JobToken: RecordingJobReference): import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>;
    /**
     * SetRecordingJobMode shall change the mode of the recording job. Using this method shall be
     *   equivalent to retrieving the recording job configuration, and writing it back with a different
     *   mode.
     */
    SetRecordingJobMode(JobToken: RecordingJobReference, Mode: RecordingJobMode): import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>;
    /**
     * GetRecordingJobState returns the state of a recording job. It includes an aggregated state,
     *   and state for each track of the recording job.
     */
    GetRecordingJobState(JobToken: RecordingJobReference): import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>;
    /**
     *
     *   Exports the selected recordings (from existing recorded data) to the given storage target based on the requested file format.
     *
     */
    ExportRecordedData(SearchScope: SearchScope, FileFormat: string, StorageDestination: StorageReferencePath, StartPoint?: string, EndPoint?: string): import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>;
    /**
     *
     *   Stops the selected ExportRecordedData operation.
     *
     */
    StopExportRecordedData(OperationToken: ReferenceToken): import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>;
    /**
     *
     *   Retrieves the status of selected ExportRecordedData operation.
     *
     */
    GetExportRecordedDataState(OperationToken: ReferenceToken): import("rxjs").Observable<import("typescript-monads").IResult<import("../soap/request").IResultStructure<any>, import("../config").ITransportPayoad>>;
}
