import type { _ICDeviceDelegate } from "./ICDeviceDelegate.js";
import type { _ICScannerBandData } from "./ICScannerBandData.js";
import type { _ICScannerDevice } from "./ICScannerDevice.js";
import type { _ICScannerFunctionalUnit } from "./ICScannerFunctionalUnit.js";
import type { _NSData } from "../Foundation/NSData.js";
import type { _NSError } from "../Foundation/NSError.js";
import type { _NSURL } from "../Foundation/NSURL.js";
export interface _ICScannerDeviceDelegate extends _ICDeviceDelegate {
    /**
     * This message is sent when another client closes an open session on the scanner. Scanners require exclusive access, only one client can open a session on a scanner. The scanner is available if it does not have a session opened by another client. Attempting to open a session on a scanner that already has an open session for another client will result in an error. A client that wants to open a session on a scanner as soon as it is available should implement this method and send "requestOpenSession" message to scanner object from that method.
     */
    scannerDeviceDidBecomeAvailable$?(scanner: _ICScannerDevice): void;
    /**
     * This message is sent when a functional unit is selected on the scanner device. A functional unit is selected immediately after the scanner device is instantiated and in response to "requestSelectFunctionalUnit:" message.
     */
    scannerDevice$didSelectFunctionalUnit$error$?(scanner: _ICScannerDevice, functionalUnit: _ICScannerFunctionalUnit, error: _NSError | null): void;
    /**
     * This message is sent when the scanner device receives the requested scan. If selectedFunctionalUnit is a document feeder, then this message will be sent once for each scanned page. This method has been deprecated and superceded by the didScanToURL: method for file based transfer, along with the didScanToBandData: for memory based transfer.
     */
    scannerDevice$didScanToURL$data$?(scanner: _ICScannerDevice, url: _NSURL, data: _NSData): void;
    /**
     * This message is sent when the scanner device receives the requested scan. If selectedFunctionalUnit is a document feeder, then this message will be sent once for each scanned page. This message is sent when the scanner device receives the requested scan. If selectedFunctionalUnit is a document feeder, then this message will be sent once for each scanned page.
     */
    scannerDevice$didScanToURL$?(scanner: _ICScannerDevice, url: _NSURL): void;
    /**
     * This message is sent when the scanner device receives the requested scan progress notification and a band of data is sent for each notification received. In memory transfer mode, this will send a band of size that has been selected by the client via the maxMemoryBandSize property.
     */
    scannerDevice$didScanToBandData$?(scanner: _ICScannerDevice, data: _ICScannerBandData): void;
    /**
     * This message is sent after the scanner device completes an overview scan. This message is sent after the scanner device completes an overview scan.
     */
    scannerDevice$didCompleteOverviewScanWithError$?(scanner: _ICScannerDevice, error: _NSError | null): void;
    /**
     * This message is sent after the scanner device completes a scan. This message is sent after the scanner device completes a scan.
     */
    scannerDevice$didCompleteScanWithError$?(scanner: _ICScannerDevice, error: _NSError | null): void;
}
