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 { _NSString } from "../Foundation/NSString.js";
import type { _NSEntityDescription } from "./NSEntityDescription.js";
export declare class _NSFetchIndexDescription extends _NSObject {
    static alloc(): _NSFetchIndexDescription;
    static new(): _NSFetchIndexDescription;
    init(): _NSFetchIndexDescription;
    initWithName$elements$(name: _NSString, elements: _NSArray | null): _NSFetchIndexDescription;
    name(): _NSString;
    setName$(value: _NSString): void;
    /**
     * Will throw if the new value is invalid (ie includes both rtree and non-rtree elements).
     */
    elements(): _NSArray;
    setElements$(value: _NSArray): void;
    entity(): _NSEntityDescription | null;
    /**
     * If the index should be a partial index, specifies the predicate selecting rows for indexing
     */
    partialIndexPredicate(): _NSPredicate | null;
    setPartialIndexPredicate$(value: _NSPredicate | null): void;
}
export interface _NSFetchIndexDescription extends _NSCoding, _NSCopying {
}
