import type { Device } from "../device.js";
import { Resource, type ResourceProps } from "./resource.js";
export type FenceProps = ResourceProps;
/** Synchronization primitive that resolves when GPU work is completed */
export declare abstract class Fence extends Resource<FenceProps> {
    static defaultProps: Required<FenceProps>;
    get [Symbol.toStringTag](): string;
    /** Promise that resolves when the fence is signaled */
    abstract readonly signaled: Promise<void>;
    constructor(device: Device, props?: FenceProps);
    /** Destroy the fence and release any resources */
    abstract destroy(): void;
    /** Check if the fence has been signaled */
    abstract isSignaled(): boolean;
}
//# sourceMappingURL=fence.d.ts.map