import type { _NSObject } from "../Foundation/NSObject.js";
import type { _CKContainer } from "./CKContainer.js";
import type { NSQualityOfService } from "../Foundation/NSQualityOfService.js";
export declare class _CKOperationConfiguration extends _NSObject {
    static alloc(): _CKOperationConfiguration;
    static new(): _CKOperationConfiguration;
    init(): _CKOperationConfiguration;
    /** If no container is set, [CKContainer defaultContainer] is used */
    container(): _CKContainer | null;
    setContainer$(value: _CKContainer | null): void;
    /**
     * @discussion CKOperations behave differently depending on how you set qualityOfService. @code Quality of Service | timeoutIntervalForResource | Network Error Behavior | Discretionary Behavior -------------------+----------------------------+------------------------+----------------------- UserInteractive | -1 (no enforcement) | fail | nonDiscretionary UserInitiated | -1 (no enforcement) | fail | nonDiscretionary Default | 1 week | fail | discretionary when app backgrounded Utility | 1 week | internally retried | discretionary when app backgrounded Background | 1 week | internally retried | discretionary @endcode timeoutIntervalForResource - the timeout interval for any network resources retrieved by this operation - this can be overridden via CKOperationConfiguration's timeoutIntervalForResource property Network Error Behavior - when a network request in service of a CKOperation fails due to a networking error, the operation may fail with that error, or internally retry the network request. Only a subset of networking errors are retried, and limiting factors such as timeoutIntervalForResource are still applicable. Discretionary Behavior - network requests in service of a CKOperation may be marked as discretionary - discretionary network requests are scheduled at the description of the system for optimal performance CKOperations have a default qualityOfService of Default.
     */
    qualityOfService(): NSQualityOfService;
    setQualityOfService$(value: NSQualityOfService): void;
    /** Defaults to @c YES */
    allowsCellularAccess(): boolean;
    setAllowsCellularAccess$(value: boolean): void;
    /**
     * @discussion Long lived operations will continue running even if your process exits. If your process remains alive for the lifetime of the long lived operation its behavior is the same as a regular operation. Long lived operations can be fetched and replayed from the container via the @c fetchAllLongLivedOperations: and @c fetchLongLivedOperationsWithIDs: APIs. Your code should only fetch and re-enqueue long lived operations on app launch. Long lived operations persist until their -[NSOperation completionBlock] returns or until the operation is cancelled. Long lived operations may be garbage collected 24 hours after they finish running if no client has replayed them. The default value for longLived is NO. Changing the value of longLived on an already started operation or on an outstanding long lived operation fetched from CKContainer has no effect.
     */
    longLived(): boolean;
    setLongLived$(value: boolean): void;
    /**
     * @discussion If non-zero, overrides the timeout interval for any network requests issued by this operation. The default value is 60. @see NSURLSessionConfiguration.timeoutIntervalForRequest
     */
    timeoutIntervalForRequest(): number;
    setTimeoutIntervalForRequest$(value: number): void;
    /**
     * @discussion If set, overrides the timeout interval for any network resources retrieved by this operation. If not explicitly set, defaults to a value based on the operation's @c qualityOfService @see NSURLSessionConfiguration.timeoutIntervalForResource
     */
    timeoutIntervalForResource(): number;
    setTimeoutIntervalForResource$(value: number): void;
}
