import type { NobjcObject } from "objc-js";
import type { _ICDevice } from "./ICDevice.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { ICScannerFunctionalUnitType } from "./ICScannerFunctionalUnitType.js";
import type { ICScannerTransferMode } from "./ICScannerTransferMode.js";
export declare class _ICScannerDevice extends _ICDevice {
    static alloc(): _ICScannerDevice;
    static new(): _ICScannerDevice;
    init(): _ICScannerDevice;
    /**
     * This message requests to open a session on the protected device with the authorized username and passcode. If the device reports back a failure of credentials, they can be provided here for the launch. A client MUST open a session on a device in order to use the device. Make sure the receiver's delegate is set prior to sending this message; otherwise this message will be ignored. This request is completed when the delegate receives a "device:didOpenSessionWithError:" message. No more messages will be sent to the delegate if this request fails.
     */
    requestOpenSessionWithCredentials$password$(username: _NSString, password: _NSString): void;
    /**
     * Requests the scanner device to select a functional unit. When this request is completed, the delegate will be notified using the 'scannerDevice:didSelectFunctionalUnit:error:' message.
     */
    requestSelectFunctionalUnit$(type: ICScannerFunctionalUnitType): void;
    /**
     * Starts an overview scan on selectedFunctionalUnit. When this request is completed, the delegate will be notified using the 'scannerDevice:didCompleteOverviewScanWithError:' message. The content of error returned should be examined to determine if the request completed successfully.
     */
    requestOverviewScan(): void;
    /**
     * Starts a scan on selectedFunctionalUnit. When this request is completed, the delegate will be notified using the 'scannerDevice:didCompleteScanWithError:' message. The content of error returned should be examined to determine if the request completed successfully.
     */
    requestScan(): void;
    /**
     * Cancels the current scan operation started by sending a 'requestOverviewScan' or 'requestScan'.
     */
    cancelScan(): void;
    /**
     * ￼An array of functional unit types available on this scanner device. This is an array of NSNumber objects whose values are of type ICScannerFunctionalUnitType.
     */
    availableFunctionalUnitTypes(): NobjcObject;
    /** ￼The currently selected functional unit on the scanner device. */
    selectedFunctionalUnit(): NobjcObject;
    /** ￼The transfer mode for scanned document. */
    transferMode(): ICScannerTransferMode;
    setTransferMode$(value: ICScannerTransferMode): void;
    /**
     * ￼The total maximum band size requested when performing a ICScannerTransferModeMemoryBased.
     */
    maxMemoryBandSize(): number;
    setMaxMemoryBandSize$(value: number): void;
    /** ￼The downloads directory. */
    downloadsDirectory(): NobjcObject;
    setDownloadsDirectory$(value: NobjcObject): void;
    /** ￼The document name. */
    documentName(): NobjcObject;
    setDocumentName$(value: NobjcObject): void;
    /**
     * ￼The document UTI. Currently supported UTIs are: kUTTypeJPEG, kUTTypeJPEG2000, kUTTypeTIFF, kUTTypePNG etc.
     */
    documentUTI(): NobjcObject;
    setDocumentUTI$(value: NobjcObject): void;
    /**
     * If the device is protected, instead of prompting the user for a username, this property can be set to default to a specific username as a convience. The value will persist until reset by setting it to nil.
     */
    defaultUsername(): NobjcObject;
    setDefaultUsername$(value: NobjcObject): void;
}
