export declare const cachedSuggestionRecord: import("arktype/internal/variants/object.ts").ObjectType<{ fsId: string; sourceFsId: string; }, {}>; export type CachedSuggestionRecord = typeof cachedSuggestionRecord.infer; export declare const ActiveCachedSuggestion: import("arktype/internal/variants/object.ts").ObjectType<{ type: "active.cached-suggestion"; key: string; fsId: string; sourceFsId: string; }, {}>; export type ActiveCachedSuggestion = typeof ActiveCachedSuggestion.infer; export declare function isActiveCachedSuggestion(obj: unknown): obj is ActiveCachedSuggestion; export declare const cachedSuggestionBlessRecord: import("arktype/internal/variants/object.ts").ObjectType<{ fsId?: string | undefined; sourceFsId?: string | undefined; targetOwnerHandle?: string | undefined; targetAppSlug?: string | undefined; approvedBy: string; approvedAt: string; }, {}>; export type CachedSuggestionBlessRecord = typeof cachedSuggestionBlessRecord.infer; export declare function isCrossSlugBless(rec: { readonly targetAppSlug?: string; }): boolean; export declare const ActiveCachedSuggestionBless: import("arktype/internal/variants/object.ts").ObjectType<{ type: "active.cached-suggestion-bless"; key: string; fsId?: string | undefined; sourceFsId?: string | undefined; targetOwnerHandle?: string | undefined; targetAppSlug?: string | undefined; approvedBy: string; approvedAt: string; }, {}>; export type ActiveCachedSuggestionBless = typeof ActiveCachedSuggestionBless.infer; export declare function isActiveCachedSuggestionBless(obj: unknown): obj is ActiveCachedSuggestionBless; export interface CachedSuggestionSource { readonly ownerHandle: string; readonly appSlug: string; readonly fsId?: string; } export interface CachedSuggestionKeyInput { readonly source: CachedSuggestionSource; readonly transform: string; readonly model?: string; } export declare function normalizeTransform(transform: string): string; export declare function cachedSuggestionKey(input: CachedSuggestionKeyInput): string; export declare function cachedSuggestionVibeLinkKey(args: { readonly ownerHandle: string; readonly appSlug: string; readonly transform: string; }): string; export declare function isCachedSuggestionKeyShape(key: string): boolean; export interface CachedSuggestionHit { readonly ownerHandle: string; readonly appSlug: string; readonly fsId?: string; } export declare function cachedVibeHref(hit: CachedSuggestionHit): string; export declare function isCrossSlugHit(hit: CachedSuggestionHit): boolean; export declare function isReadableGrant(grant: string): boolean; export declare const isReadableCachedGrant: typeof isReadableGrant; export type CachedReadDecision = { readonly kind: "read"; readonly href: string; readonly hit: CachedSuggestionHit; } | { readonly kind: "write"; }; export declare function resolveCachedRead(args: { readonly source: CachedSuggestionSource; readonly transform: string; readonly model?: string; readonly lookup: (req: { key: string; source: CachedSuggestionSource; }) => Promise; }): Promise; export type CachedHitOutcome = { readonly kind: "adopt"; readonly fsId: string; readonly hit: CachedSuggestionHit; } | { readonly kind: "navigate"; readonly href: string; readonly hit: CachedSuggestionHit; }; export declare function resolveCachedHit(args: { readonly hit: CachedSuggestionHit; readonly isOwner: boolean; }): CachedHitOutcome;