import type { _NSObject } from "../Foundation/NSObject.js";
import type { _SHCatalog } from "./SHCatalog.js";
import type { _SHSessionDelegate } from "./SHSessionDelegate.js";
import type { _SHSignature } from "./SHSignature.js";
import type { _AVAudioPCMBuffer } from "../AVFAudio/AVAudioPCMBuffer.js";
import type { _AVAudioTime } from "../AVFAudio/AVAudioTime.js";
export declare class _SHSession extends _NSObject {
    static alloc(): _SHSession;
    static new(): _SHSession;
    /** Creates a new session object for matching songs in the Shazam Music catalog. */
    init(): _SHSession;
    /**
     * Creates a new session object for matching audio in a custom catalog. - Parameters: - catalog: The catalog that contains the reference audio signatures and their associated metadata.
     */
    initWithCatalog$(catalog: _SHCatalog): _SHSession;
    /**
     * Converts the audio in the buffer to a signature, and searches the reference signatures in the session catalog. This method continues to generate signatures and perform searches until the audio in the buffer stops, which may result in multiple calls to the ``SHSession/delegate``. The audio buffer must be in one of the supported formats. For the list of the supported audio formats, see ``SHSignatureGenerator/append(_:at:)``. To use the microphone as input for the buffer, see <doc :matching-audio-using-the-built-in-microphone>. > Note: > You must use the audio format of the first call to this method in the current session in all subsequent calls for the session. - Parameters: - buffer: An audio buffer. - time: The start time of the audio to use for generating the signatures.
     */
    matchStreamingBuffer$atTime$(buffer: _AVAudioPCMBuffer, time: _AVAudioTime | null): void;
    /**
     * Searches for the query signature in the reference signatures that the session catalog contains. - Parameters: - signature: The signature for searching the catalog of reference signatures.
     */
    matchSignature$(signature: _SHSignature): void;
    /**
     * The catalog object containing the reference signatures and their associated metadata that the session uses to perform matches.
     */
    catalog(): _SHCatalog;
    /** The object that the session calls with the result of a match request. */
    delegate(): _SHSessionDelegate | null;
    setDelegate$(value: _SHSessionDelegate | null): void;
}
