import type { CatalogItemScope } from "@x12i/catalox-contracts/items.js"; /** * Merge token scope (authorization boundary) with fetch scope (request narrowing). * Fetch never expands beyond token; shared dimensions are intersected. */ export declare function mergeEffectiveScope(tokenScope: CatalogItemScope | undefined, fetchScope: CatalogItemScope | undefined, opts?: { unrestricted?: boolean; }): { effectiveScope: CatalogItemScope; scopedAccessAllowed: boolean; }; export declare function itemMatchesEffectiveScope(itemScope: CatalogItemScope, effectiveScope: CatalogItemScope): boolean; export type CatalogScopeFetchMode = { includeGeneric: boolean; genericOnly: boolean; scopedOnly: boolean; }; export declare function resolveCatalogScopeFetchMode(options?: { includeGeneric?: boolean; scopedOnly?: boolean; genericOnly?: boolean; }): CatalogScopeFetchMode; export declare function shouldIncludeItemInList(params: { itemScope: CatalogItemScope; effectiveScope: CatalogItemScope; scopedAccessAllowed: boolean; fetchMode: CatalogScopeFetchMode; }): boolean; /** Build token scope from context.scope only (not singular legacy coords). */ export declare function tokenScopeFromContext(context: { scope?: CatalogItemScope; superAdmin?: boolean; unrestrictedScope?: boolean; }): CatalogItemScope; export declare function isUnrestrictedScopeContext(context: { superAdmin?: boolean; unrestrictedScope?: boolean; }): boolean; //# sourceMappingURL=item-scope-match.d.ts.map