import type { HandlerDependencies, MethodHandler } from '../types/method-handler.js';
import type { RecordsCountMessage, RecordsCountReply } from '../types/records-types.js';
export declare class RecordsCountHandler implements MethodHandler {
    private readonly deps;
    constructor(deps: HandlerDependencies);
    handle({ tenant, message, }: {
        tenant: string;
        message: RecordsCountMessage;
    }): Promise<RecordsCountReply>;
    /**
     * Counts records as the owner of the DWN with no additional filtering.
     */
    private countRecordsAsOwner;
    /**
     * Counts records as a non-owner, applying the same filter logic as RecordsQuery.
     */
    private countRecordsAsNonOwner;
    /**
     * Counts only published records.
     */
    private countPublishedRecords;
    private countProjectedRecords;
    private static buildPublishedRecordsFilter;
    /**
     * Creates a filter for unpublished records that are intended for the count author (where `recipient` is the author).
     */
    private static buildUnpublishedRecordsForCountAuthorFilter;
    /**
     * Creates a filter for unpublished records that are within the specified protocol.
     */
    private static buildUnpublishedProtocolAuthorizedRecordsFilter;
    /**
     * Creates a filter for unpublished records authorized by a permission grant.
     */
    private static buildUnpublishedPermissionGrantAuthorizedRecordsFilter;
    /**
     * Creates a filter for only unpublished records where the author is the same as the count author.
     */
    private static buildUnpublishedRecordsByCountAuthorFilter;
    /**
     * @param messageStore Used to check if the grant has been revoked.
     */
    private static authorizeRecordsCount;
}
//# sourceMappingURL=records-count.d.ts.map