import type { SubscriptionListener } from '../types/subscriptions.js';
import type { HandlerDependencies, MethodHandler } from '../types/method-handler.js';
import type { RecordsSubscribeMessage, RecordsSubscribeReply } from '../types/records-types.js';
import { RecordsSubscribe } from '../interfaces/records-subscribe.js';
export declare class RecordsSubscribeHandler implements MethodHandler {
    private readonly deps;
    constructor(deps: HandlerDependencies);
    handle({ tenant, message, subscriptionHandler, }: {
        tenant: string;
        message: RecordsSubscribeMessage;
        subscriptionHandler: SubscriptionListener;
    }): Promise<RecordsSubscribeReply>;
    /**
     * Convert an incoming DateSort to a sort type accepted by MessageStore.
     * Defaults to `dateCreated` ascending if no sort is supplied.
     */
    private static convertDateSort;
    private static createRecordLimitOccupancyGuard;
    /**
     * Build event filters for owner: all matching Write+Delete events.
     */
    private static buildOwnerEventFilters;
    /**
     * Build event filters for non-owner with visibility rules.
     */
    private static buildNonOwnerEventFilters;
    /**
     * Build a published-only event filter (Write+Delete).
     */
    private static buildPublishedEventFilter;
    /**
     * Build query filters for owner: latest writes matching the filter.
     */
    private static buildOwnerQueryFilters;
    /**
     * Build query filters for non-owner with visibility rules.
     */
    private static buildNonOwnerQueryFilters;
    /**
     * Build a published-only query filter (latest writes).
     */
    private static buildPublishedQueryFilter;
    /**
     * @param messageStore Used to check if the grant has been revoked.
     */
    static authorizeRecordsSubscribe(tenant: string, recordsSubscribe: RecordsSubscribe, deps: HandlerDependencies): Promise<void>;
}
//# sourceMappingURL=records-subscribe.d.ts.map