/** Contracts-core resources family (0.2.5 plan 025 Task 1 split). * Moved verbatim from contracts-core.ts; public surface unchanged behind the barrel. */ import type { PermissionPolicy, TrustPolicy } from "../security.js"; import type { OAuthCredentials } from "./extensions.js"; export interface Resource { readonly uri: string; readonly mediaType?: string; readonly text?: string; readonly data?: Uint8Array; readonly metadata?: Readonly>; } export interface ResourceLoader { load(uri: string, context?: ResourceLoadContext): Promise; list?(context?: ResourceLoadContext): Promise; } export interface ResourceLoadContext { readonly signal?: AbortSignal; readonly metadata?: Readonly>; readonly permission?: PermissionPolicy; readonly trust?: TrustPolicy; } export interface SettingsProvider { get(key: string): Promise | T | undefined; } export interface CredentialRequest { readonly name: string; readonly provider?: string; readonly metadata?: Readonly>; } export interface Credential { readonly type: "bearer" | "api_key" | "basic" | "custom"; readonly value: string; readonly metadata?: Readonly>; } export interface CredentialResolver { resolve(request: CredentialRequest): Promise | Credential | undefined; } export interface CredentialResolverSource { readonly name: string; readonly resolver: CredentialResolver; } export interface OAuthCredentialStore { set(provider: string, credentials: OAuthCredentials): void | Promise; }