import { BimChangeStatus } from './BimChangeStatus';
import { BimChangeMetadataQuery } from './BimChangeMetadataQuery';
import { BimChangeIfc, BimChangeDwg, BimChangeLayer, BimChangeBlob, BimChange, BimFolder } from './bim-api-client';
import { BimChangeUploadable } from './client/UploadApiClient';
/**
 * Predefined queries to use with {@link BimCoreApiClient.getChanges}.
 */
export declare class PredefinedBimChangeMetadataQuery {
    /**
     * Gets all successfully processed folders.
     * @example
     * ```
     * api.getChanges(projectA, PredefinedBimChangeMetadataQuery.folder())
     * ```
     * Query for use with {@link TwinfinityApiClient.getChanges}.
     */
    static folder(): BimChangeMetadataQuery<BimFolder>;
    /**
     * Gets all successfully processed folders.
     * @example
     * ```
     * api.getChanges(projectA, PredefinedBimChangeMetadataQuery.folder())
     * ```
     * Query for use with {@link TwinfinityApiClient.getChanges}.
     */
    static all(): BimChangeMetadataQuery<BimChange>;
    /**
     * Gets all successfully processed IFC changes.
     * @example
     * ```
     * api.getChanges(projectA, PredefinedBimChangeMetadataQuery.ifc())
     * ```
     * @param status Status of IFC files to get.
     * Query for use with {@link TwinfinityApiClient.getChanges}.
     */
    static ifc(status?: BimChangeStatus): BimChangeMetadataQuery<BimChangeIfc>;
    /**
     * Gets all successfully processed DWG changes.
     * @example
     * ```
     * api.getChanges(projectA, PredefinedBimChangeMetadataQuery.dwg())
     * ```
     * @param status Status of DWG files to get.
     * Query for use with {@link TwinfinityApiClient.getChanges}.
     */
    static dwg(status?: BimChangeStatus): BimChangeMetadataQuery<BimChangeDwg>;
    /**
     * Gets all successfully processed PDF changes.
     * @example
     * ```
     * api.getChanges(projectA, PredefinedBimChangeMetadataQuery.pdf())
     * ```
     * @param status Status of PDF files to get.
     * Query for use with {@link TwinfinityApiClient.getChanges}.
     */
    static pdf(status?: BimChangeStatus): BimChangeMetadataQuery<BimChangeBlob>;
    /**
     * Gets all layers of a specific format
     * @example
     * ```
     * api.getChanges(projectA, PredefinedBimChangeMetadataQuery.layer("sensors"))
     * ```
     * @param format Type of layer to get. For example "sensors"
     * @returns Query for use with {@link TwinfinityApiClient.getChanges}.
     */
    static layer(format: string): BimChangeMetadataQuery<BimChangeLayer>;
    /**
     * Retrieves the BimChangeMetadataQuery for layer attachments.
     * @param format The format or layerId property.
     * @returns The BimChangeMetadataQuery object.
     * @example
     * ```
     * // Get all layer attachments for sensor layers in projectA
     * api.getChanges(projectA, PredefinedBimChangeMetadataQuery.layerAttachments("sensors"));
     * // Get all layer attachments for sensor layers in folderA
     * api.getChanges(folderA, PredefinedBimChangeMetadataQuery.layerAttachments("sensors"));
     * ```
     */
    static layerAttachments<T extends BimChangeUploadable = BimChangeUploadable>(format: string): BimChangeMetadataQuery<T>;
    /**
     * Gets all blobs/files with a specific file extension and status
     * @example
     * ```
     * api.getChanges(projectA, PredefinedBimChangeMetadataQuery.blob("docx"))
     * ```
     * @param extension File extension
     * @param status Status of files to get.
     * @returns Query for use with {@link TwinfinityApiClient.getChanges}.
     */
    static blob<T extends BimChange = BimChangeBlob>(extension: string, status?: BimChangeStatus): BimChangeMetadataQuery<T>;
}
//# sourceMappingURL=PredefinedBimChangeMetadataQuery.d.ts.map