ts-onvif
Version:
Client to ONVIF devices
99 lines (98 loc) • 4.07 kB
TypeScript
/**
* Search ver10 module
* @author Andrew D.Laptev <a.d.laptev@gmail.com>
* @see https://www.onvif.org/ver10/search.wsdl
*/
import { Onvif } from './onvif';
import Service from './service';
import { FindEventResultList, FindMetadataResultList, FindPTZPositionResultList, FindRecordingResultList, JobToken, MediaAttributes, RecordingInformation, RecordingSummary, SearchState } from './interfaces/onvif';
import { Capabilities, EndSearch, EndSearchResponse, FindEvents, FindMetadata, FindPTZPosition, FindRecordings, GetEventSearchResults, GetMediaAttributes, GetMetadataSearchResults, GetPTZPositionSearchResults, GetRecordingInformation, GetRecordingSearchResults, GetRecordingSummary, GetSearchState } from './interfaces/search';
/**
* Search service
* @example
* ```ts
* const summary = await cam.search.getRecordingSummary();
* const token = await cam.search.findRecordings({
* scope: { includedRecordings: ['RecordingToken_1'] },
* keepAliveTime: 'PT10S',
* });
* const results = await cam.search.getRecordingSearchResults({ searchToken: token });
* await cam.search.endSearch({ searchToken: token });
* ```
*/
export default class Search extends Service {
constructor(onvif: Onvif);
private static recordingTokensToBuild;
private static searchScopeToBuild;
private static ptzPositionFilterToBuild;
private static metadataFilterToBuild;
private static searchResultsRequestToBuild;
/**
* Returns the capabilities of the search service.
*/
getServiceCapabilities(): Promise<Capabilities>;
/**
* Returns a summary of recorded data on the device.
*/
getRecordingSummary(_options?: GetRecordingSummary): Promise<RecordingSummary>;
/**
* Returns detailed information about a recording.
* @param options
*/
getRecordingInformation({ recordingToken }: GetRecordingInformation): Promise<RecordingInformation>;
/**
* Returns media attributes valid at a specific point in time.
* @param options
*/
getMediaAttributes({ recordingTokens, time }: GetMediaAttributes): Promise<MediaAttributes[]>;
/**
* Starts a search for recordings matching the scope.
* @param options
*/
findRecordings({ scope, maxMatches, keepAliveTime }: FindRecordings): Promise<JobToken>;
/**
* Returns results from a recording search session.
* @param options
*/
getRecordingSearchResults(options: GetRecordingSearchResults): Promise<FindRecordingResultList>;
/**
* Starts a search for events in recorded data.
* @param options
*/
findEvents({ startPoint, endPoint, scope, searchFilter, includeStartState, maxMatches, keepAliveTime, }: FindEvents): Promise<JobToken>;
/**
* Returns results from an event search session.
* @param options
*/
getEventSearchResults(options: GetEventSearchResults): Promise<FindEventResultList>;
/**
* Starts a search for PTZ positions in recorded metadata.
* @param options
*/
findPTZPosition({ startPoint, endPoint, scope, searchFilter, maxMatches, keepAliveTime, }: FindPTZPosition): Promise<JobToken>;
/**
* Returns results from a PTZ position search session.
* @param options
*/
getPTZPositionSearchResults(options: GetPTZPositionSearchResults): Promise<FindPTZPositionResultList>;
/**
* Starts a search for metadata in recorded data.
* @param options
*/
findMetadata({ startPoint, endPoint, scope, metadataFilter, maxMatches, keepAliveTime, }: FindMetadata): Promise<JobToken>;
/**
* Returns results from a metadata search session.
* @param options
*/
getMetadataSearchResults(options: GetMetadataSearchResults): Promise<FindMetadataResultList>;
/**
* Returns the state of a search session.
* @param options
*/
getSearchState({ searchToken }: GetSearchState): Promise<SearchState>;
/**
* Ends a search session.
* @param options
*/
endSearch({ searchToken }: EndSearch): Promise<EndSearchResponse['endpoint']>;
}