import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSCoding } from "../Foundation/NSCoding.js";
import type { _NSCopying } from "../Foundation/NSCopying.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSPredicate } from "../Foundation/NSPredicate.js";
import type { _NSEntityDescription } from "../CoreData/NSEntityDescription.js";
import type { NSComparisonPredicateModifier } from "../Foundation/NSComparisonPredicateModifier.js";
import type { NSAttributeType } from "../CoreData/NSAttributeType.js";
export declare class _NSPredicateEditorRowTemplate extends _NSObject {
    static alloc(): _NSPredicateEditorRowTemplate;
    static new(): _NSPredicateEditorRowTemplate;
    init(): _NSPredicateEditorRowTemplate;
    /**
     * CoreData convenience method: creates an array of templates of the popup-popup-view variety from the given key paths. The key paths may cross relationships but must terminate in attributes.
     */
    static templatesWithAttributeKeyPaths$inEntityDescription$(keyPaths: _NSArray, entityDescription: _NSEntityDescription): _NSArray;
    /**
     * returns a positive number if the template can represent the predicate, and zero if it cannot. The highest match determines which template is responsible for displaying the predicate. Developers can override this to determine which predicates their custom template handles. By default, this returns values in the range [0., 1.]
     */
    matchForPredicate$(predicate: _NSPredicate): number;
    /**
     * sets the value of the views according to the given predicate. This is only called if matchForPredicate: returns a positive value for the given predicate. Developers can override this to set the values of their custom views.
     */
    setPredicate$(predicate: _NSPredicate): void;
    /**
     * returns the predicate represented by the template's views' values and the given subpredicates. Developers can override this to return the predicate represented by their custom views.
     */
    predicateWithSubpredicates$(subpredicates: _NSArray | null): _NSPredicate;
    /**
     * for a given predicate, returns the subpredicates that should be made subrows. For NSCompoundPredicate, this returns the array of subpredicates; it returns nil for other types of predicates. This is only called if matchForPredicate: returns a positive value for the given predicate. Developers can override this to create custom templates that handle complicated compound predicates.
     */
    displayableSubpredicatesOfPredicate$(predicate: _NSPredicate): _NSArray | null;
    /**
     * creates a template of the popup-popup-popup form, with the left and right popups representing the left and right expression arrays, and the center popup representing the operators.
     */
    initWithLeftExpressions$rightExpressions$modifier$operators$options$(leftExpressions: _NSArray, rightExpressions: _NSArray, modifier: NSComparisonPredicateModifier, operators: _NSArray, options: number): _NSPredicateEditorRowTemplate;
    /**
     * creates a template of the popup-popup-view form, with the left popups representing the left expressions, the right view representing an arbitrary value, and the center popup representing the operators.
     */
    initWithLeftExpressions$rightExpressionAttributeType$modifier$operators$options$(leftExpressions: _NSArray, attributeType: NSAttributeType, modifier: NSComparisonPredicateModifier, operators: _NSArray, options: number): _NSPredicateEditorRowTemplate;
    /**
     * creates a template suitable for displaying compound predicates. NSPredicateEditor contains such a template by default.
     */
    initWithCompoundTypes$(compoundTypes: _NSArray): _NSPredicateEditorRowTemplate;
    /**
     * returns the list of views that are placed in the row. NSPopUpButtons are treated specially in that the items of multiple templates are merged together; other views are added as-is. Developers can override this to return views in addition to or instead of the default views.
     */
    templateViews(): _NSArray;
    /**
     * returns the various values set in the initializers, or zero/nil if they do not apply
     */
    leftExpressions(): _NSArray | null;
    rightExpressions(): _NSArray | null;
    rightExpressionAttributeType(): NSAttributeType;
    modifier(): NSComparisonPredicateModifier;
    operators(): _NSArray | null;
    options(): number;
    compoundTypes(): _NSArray | null;
}
export interface _NSPredicateEditorRowTemplate extends _NSCoding, _NSCopying {
}
