import type { NobjcObject } from "objc-js";
import type { _NSStream } from "./NSStream.js";
import type { _NSString } from "./NSString.js";
import type { _NSURL } from "./NSURL.js";
export declare class _NSOutputStream extends _NSStream {
    static alloc(): _NSOutputStream;
    static new(): _NSOutputStream;
    init(): _NSOutputStream;
    static outputStreamToMemory(): _NSOutputStream;
    static outputStreamToBuffer$capacity$(buffer: NobjcObject, capacity: number): _NSOutputStream;
    static outputStreamToFileAtPath$append$(path: _NSString, shouldAppend: boolean): _NSOutputStream;
    static outputStreamWithURL$append$(url: _NSURL, shouldAppend: boolean): _NSOutputStream | null;
    write$maxLength$(buffer: NobjcObject, len: number): number;
    /**
     * returns YES if the stream can be written to or if it is impossible to tell without actually doing the write.
     */
    initToMemory(): _NSOutputStream;
    initToBuffer$capacity$(buffer: NobjcObject, capacity: number): _NSOutputStream;
    initWithURL$append$(url: _NSURL, shouldAppend: boolean): _NSOutputStream | null;
    initToFileAtPath$append$(path: _NSString, shouldAppend: boolean): _NSOutputStream | null;
    /**
     * writes the bytes from the specified buffer to the stream up to len bytes. Returns the number of bytes actually written.
     */
    hasSpaceAvailable(): boolean;
}
