import type { GenericMessage, MessageEvent, RecordsWriteMessage } from '@enbox/dwn-sdk-js';
import type { SyncScope } from './types/sync.js';
/** Result of testing whether an inbound sync message belongs to a link scope. */
export type SyncScopeClassification = 'in-scope' | 'out-of-scope' | 'unknown';
type SyncMessageScopeClassificationParams = {
    message: GenericMessage;
    initialWrite?: RecordsWriteMessage;
    scope: SyncScope;
};
/**
 * Classifies whether a live event belongs to the link's current sync scope.
 *
 * Full links accept every message. Protocol-set links accept records for a
 * covered protocol, ProtocolsConfigure messages that install a covered
 * protocol, and permission records tagged for a covered protocol. RecordsDelete
 * messages carry no protocol in their descriptor, so they must be classified
 * from the event's initial write metadata.
 */
export declare function classifySyncEventScope(event: MessageEvent, scope: SyncScope): SyncScopeClassification;
/**
 * Classifies whether a DWN message belongs to a sync scope before local apply.
 *
 * If a RecordsDelete cannot be tied to its initial write, the result is
 * `unknown` so callers fail closed instead of applying an unclassified delete.
 */
export declare function classifySyncMessageScope({ message, initialWrite, scope, }: SyncMessageScopeClassificationParams): SyncScopeClassification;
export {};
//# sourceMappingURL=sync-scope-acceptance.d.ts.map