import type { NobjcObject } from "objc-js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSCopying } from "../Foundation/NSCopying.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSOperationQueue } from "../Foundation/NSOperationQueue.js";
import type { _NSRunLoop } from "../Foundation/NSRunLoop.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _ODNode } from "./ODNode.js";
import type { _ODQueryDelegate } from "./ODQueryDelegate.js";
export declare class _ODQuery extends _NSObject {
    static alloc(): _ODQuery;
    static new(): _ODQuery;
    init(): _ODQuery;
    /**
     * @method queryWithNode:forRecordTypes:attribute:matchType:queryValues:returnAttributes:maximumResults:error: @abstract Creates an autoreleased query with the node using the parameters provided @discussion Creates an autoreleased query with the node using the supplied query parameters. Some parameters can either be NSString or NSData or an NSArray of either NSString or NSData. Passing nil for returnAttributes is equivalent to passing kODAttributeTypeStandardOnly. outError is optional parameter, nil can be passed if error details are not needed.
     */
    static queryWithNode$forRecordTypes$attribute$matchType$queryValues$returnAttributes$maximumResults$error$(inNode: _ODNode, inRecordTypeOrList: NobjcObject, inAttribute: _NSString, inMatchType: number, inQueryValueOrList: NobjcObject, inReturnAttributeOrList: NobjcObject, inMaximumResults: number, outError: NobjcObject): _ODQuery;
    /**
     * @method initWithNode:forRecordTypes:attribute:matchType:queryValues:returnAttributes:maximumResults:error: @abstract Creates a query with the node using the parameters provided @discussion Creates a query with the node using the supplied query parameters. Some parameters can either be NSString or NSData or an NSArray of either NSString or NSData. Passing nil for returnAttributes is equivalent to passing kODAttributeTypeStandardOnly. outError is optional parameter, nil can be passed if error details are not needed.
     */
    initWithNode$forRecordTypes$attribute$matchType$queryValues$returnAttributes$maximumResults$error$(inNode: _ODNode, inRecordTypeOrList: NobjcObject, inAttribute: _NSString, inMatchType: number, inQueryValueOrList: NobjcObject, inReturnAttributeOrList: NobjcObject, inMaximumResults: number, outError: NobjcObject): _ODQuery;
    /**
     * @method resultsAllowingPartial:error: @abstract Returns results from a provided ODQuery synchronously @discussion Returns results from a provided ODQuery synchronously. Passing NO to inAllowPartialResults will block the call until all results are returned or an error occurs. YES can be passed at any time even if previous calls were made with NO. outError is optional parameter, nil can be passed if error details are not needed.
     */
    resultsAllowingPartial$error$(inAllowPartialResults: boolean, outError: NobjcObject): _NSArray;
    /**
     * @method scheduleInRunLoop:forMode: @abstract Adds the query object to the specified NSRunLoop to receive asynchronous results @discussion Adds the query object to the specified NSRunLoop to receive asynchronous results. A delegate must be set in advance otherwise results may be lost due to the lack of a receiver.
     */
    scheduleInRunLoop$forMode$(inRunLoop: _NSRunLoop, inMode: _NSString): void;
    /**
     * @method removeFromRunLoop:forMode: @abstract Removes the query object from the specified NSRunLoop @discussion Removes the query object from the specified NSRunLoop.
     */
    removeFromRunLoop$forMode$(inRunLoop: _NSRunLoop, inMode: _NSString): void;
    /**
     * @method synchronize @abstract Will dispose of any results and restart the query. @discussion Will dispose of any results and restart the query for subsequent resultsAllowingPartial: calls. If the query is currently scheduled on a RunLoop, then the delegate will be called with inResults == nil and [inError code] == kODErrorQuerySynchronize and [inError domain] == ODFrameworkErrorDomain, signifying that all existing results should be thrown away in preparation for new results.
     */
    synchronize(): void;
    /**
     * @property delegate @abstract The currently set delegate @discussion The query delegate which will receive asynchronous query results.
     */
    delegate(): _ODQueryDelegate;
    setDelegate$(value: _ODQueryDelegate): void;
    /**
     * @property operationQueue @abstract The NSOperationQueue on which asynchronous results are delivered to the delegate. @discussion The NSOperationQueue on which asynchronous results are delivered to the delegate.
     */
    operationQueue(): _NSOperationQueue;
    setOperationQueue$(value: _NSOperationQueue): void;
}
export interface _ODQuery extends _NSCopying {
}
