import type { NobjcObject } from "objc-js";
import type { _NSData } from "../Foundation/NSData.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSSecureCoding } from "../Foundation/NSSecureCoding.js";
export declare class _BELayerHierarchyHandle extends _NSObject {
    static alloc(): _BELayerHierarchyHandle;
    static new(): _BELayerHierarchyHandle;
    init(): _BELayerHierarchyHandle;
    /**
     * Decodes a handle form a `mach_port_t` send right and its accompanying metadata. - This method takes ownership of the port right (even if it returns an error).
     */
    static handleWithPort$data$error$(port: NobjcObject, data: _NSData, error: NobjcObject | null): _BELayerHierarchyHandle | null;
    /**
     * Encodes the handle into a `mach_port_t` send right and its accompanying metadata. - The block is responsible for disposing of `copiedPort` - failure to manage its lifecycle will leak the port. Note that some functions (like ``handleWithPort:data:error:``) will assume control of the right for you. - `copiedPort` will be `MACH_PORT_NULL` if the ``BELayerHierarchy`` pointed to by the handle is already invalidated. - The port and data should ultimately be consumed together by ``handleWithPort:data:error:``.
     */
    encodeWithBlock$(block: (copiedPort: NobjcObject, data: _NSData) => void): void;
}
export interface _BELayerHierarchyHandle extends _NSSecureCoding {
}
