import type { NobjcObject } from "objc-js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _CAMediaTimingFunction } from "../QuartzCore/CAMediaTimingFunction.js";
export declare class _SCNTransaction extends _NSObject {
    static alloc(): _SCNTransaction;
    static new(): _SCNTransaction;
    init(): _SCNTransaction;
    /** Begin a new transaction for the current thread; nests. */
    static begin(): void;
    /** Commit all changes made during the current transaction. */
    static commit(): void;
    /**
     * Commits any extant implicit transaction. Will delay the actual commit until any nested explicit transactions have completed.
     */
    static flush(): void;
    /** Methods to lock and unlock the global lock. */
    static lock(): void;
    static unlock(): void;
    /**
     * Associate arbitrary keyed-data with the current transaction (i.e. with the current thread).
     */
    static valueForKey$(key: _NSString): NobjcObject | null;
    static setValue$forKey$(value: NobjcObject | null, key: _NSString): void;
    /**
     * Accessors for the "animationDuration" per-thread transaction property. Defines the default duration of animations. Defaults to 1/4s for explicit transactions, 0s for implicit transactions.
     */
    static animationDuration(): number;
    static setAnimationDuration$(value: number): void;
    /**
     * Accessors for the "animationTimingFunction" per-thread transaction property. The default value is nil, when set to a non-nil value any animations added to scene graph will have this value set as their "timingFunction" property.
     */
    static animationTimingFunction(): _CAMediaTimingFunction;
    static setAnimationTimingFunction$(value: _CAMediaTimingFunction): void;
    /**
     * Accessors for the "disableActions" per-thread transaction property. Defines whether or not the implicit animations are performed. Defaults to NO, i.e. implicit animations enabled.
     */
    static disableActions(): boolean;
    static setDisableActions$(value: boolean): void;
    /**
     * Accessors for the "completionBlock" per-thread transaction property. Once set to a non-nil value the block is guaranteed to be called (on the main thread) as soon as all animations subsequently added by this transaction group have completed (or been removed).
     */
    static completionBlock(): (() => void) | null;
    static setCompletionBlock$(value: (() => void) | null): void;
}
