import type { NobjcObject } from "objc-js";
import type { _NSData } from "./NSData.js";
import type { _NSStream } from "./NSStream.js";
import type { _NSString } from "./NSString.js";
import type { _NSURL } from "./NSURL.js";
export declare class _NSInputStream extends _NSStream {
    static alloc(): _NSInputStream;
    static new(): _NSInputStream;
    init(): _NSInputStream;
    static inputStreamWithData$(data: _NSData): _NSInputStream | null;
    static inputStreamWithFileAtPath$(path: _NSString): _NSInputStream | null;
    static inputStreamWithURL$(url: _NSURL): _NSInputStream | null;
    read$maxLength$(buffer: NobjcObject, len: number): number;
    /**
     * reads up to length bytes into the supplied buffer, which must be at least of size len. Returns the actual number of bytes read.
     */
    getBuffer$length$(buffer: NobjcObject | null, len: NobjcObject): boolean;
    /**
     * returns YES if the stream has bytes available or if it impossible to tell without actually doing the read.
     */
    initWithData$(data: _NSData): _NSInputStream;
    initWithURL$(url: _NSURL): _NSInputStream | null;
    initWithFileAtPath$(path: _NSString): _NSInputStream | null;
    /**
     * returns in O(1) a pointer to the buffer in 'buffer' and by reference in 'len' how many bytes are available. This buffer is only valid until the next stream operation. Subclassers may return NO for this if it is not appropriate for the stream type. This may return NO if the buffer is not available.
     */
    hasBytesAvailable(): boolean;
}
