import type { MessageStore } from '../types/message-store.js';
import type { RecordsWrite } from './records-write.js';
import type { Signer } from '../types/signer.js';
import type { RecordsFilter, RecordsReadMessage } from '../types/records-types.js';
import { Message } from '../core/message.js';
export type RecordsReadOptions = {
    filter: RecordsFilter;
    messageTimestamp?: string;
    signer?: Signer;
    permissionsGrantId?: string;
    /**
     * Used when authorizing protocol records.
     * The protocol path to a $globalRole record whose recipient is the author of this RecordsRead
     */
    protocolRole?: string;
};
export declare class RecordsRead extends Message<RecordsReadMessage> {
    static parse(message: RecordsReadMessage): Promise<RecordsRead>;
    /**
     * Creates a RecordsRead message.
     * @param options.recordId If `undefined`, will be auto-filled as a originating message as convenience for developer.
     * @param options.messageTimestamp If `undefined`, it will be auto-filled with current time.
     *
     * @throws {DwnError} when a combination of required RecordsReadOptions are missing
     */
    static create(options: RecordsReadOptions): Promise<RecordsRead>;
    authorize(tenant: string, newestRecordsWrite: RecordsWrite, messageStore: MessageStore): Promise<void>;
}
//# sourceMappingURL=records-read.d.ts.map