import type { _PHChangeRequest } from "./PHChangeRequest.js";
import type { _PHCollectionList } from "./PHCollectionList.js";
import type { _PHFetchResult } from "./PHFetchResult.js";
import type { _PHObjectPlaceholder } from "./PHObjectPlaceholder.js";
import type { _NSFastEnumeration } from "../Foundation/NSFastEnumeration.js";
import type { _NSIndexSet } from "../Foundation/NSIndexSet.js";
import type { _NSString } from "../Foundation/NSString.js";
export declare class _PHCollectionListChangeRequest extends _PHChangeRequest {
    static alloc(): _PHCollectionListChangeRequest;
    static new(): _PHCollectionListChangeRequest;
    init(): _PHCollectionListChangeRequest;
    static creationRequestForCollectionListWithTitle$(title: _NSString): _PHCollectionListChangeRequest;
    /**
     * requests that the specified collection lists and all their child collections (recursively) be deleted
     */
    static deleteCollectionLists$(collectionLists: _NSFastEnumeration): void;
    /**
     * if the collection list does not allow the type of change requested, these methods will raise an exception, call canPerformEditOperation: on the collection list to determine if the type of edit operation is allowed.
     */
    static changeRequestForCollectionList$(collectionList: _PHCollectionList): _PHCollectionListChangeRequest | null;
    /**
     * to add, remove or rearrange child collections in a collection list, passing in the fetched collections in that collection list will ensure that the child collection positions are tracked correctly in the case that the collection list has been externally edited after the fetch, but before this change is applied
     */
    static changeRequestForCollectionList$childCollections$(collectionList: _PHCollectionList, childCollections: _PHFetchResult): _PHCollectionListChangeRequest | null;
    /**
     * to add, remove or rearrange child collections in the TOP LEVEL collection list, passing in the fetched collections in that collection list will ensure that the child collection positions are tracked correctly in the case that the collection list has been externally edited after the fetch, but before this change is applied
     */
    static changeRequestForTopLevelCollectionListUserCollections$(childCollections: _PHFetchResult): _PHCollectionListChangeRequest | null;
    /** A PHCollection can only belong to a single parent PHCollection */
    addChildCollections$(collections: _NSFastEnumeration): void;
    insertChildCollections$atIndexes$(collections: _NSFastEnumeration, indexes: _NSIndexSet): void;
    removeChildCollections$(collections: _NSFastEnumeration): void;
    removeChildCollectionsAtIndexes$(indexes: _NSIndexSet): void;
    replaceChildCollectionsAtIndexes$withChildCollections$(indexes: _NSIndexSet, collections: _NSFastEnumeration): void;
    /**
     * The move removes the child collections at fromIndexes first then inserts those collections at the toIndex, so toIndex should point to a location based on the updated indexes after having removed the child collections at fromIndexes
     */
    moveChildCollectionsAtIndexes$toIndex$(indexes: _NSIndexSet, toIndex: number): void;
    /**
     * This can be used to fetch the newly created collection list after the change block has completed by using -localIdentifier It can also be added directly to collection lists within the current change block
     */
    placeholderForCreatedCollectionList(): _PHObjectPlaceholder;
    title(): _NSString;
    setTitle$(value: _NSString): void;
}
