import { type CapabilityLimits, type FeatureRegistry, type Limitation } from './backend-contract/capabilities.js'; import type { BleCentralBackend } from './backend-contract/backend.js'; import type { BackendIdentity } from './backend-contract/identity.js'; import type { BackendCompatibilityOffer } from './backend-contract/primitives.js'; import type { BackendTckFactory, TckFeatureSuite, TckRunReport } from './tck/contracts.js'; export interface BackendAuthorMetadata { readonly packageName: string; readonly authorNamespace: string; readonly backendId: string; readonly platformId: string; readonly compatibility: BackendCompatibilityOffer; } /** * A complete external backend declaration. The factory and feature suites are * The factory owns runner-controlled adapter selection, while feature suites * bind executable TCK scenarios; capability details remain in the runtime * feature registry rather than being duplicated in this descriptor. */ export interface BackendAuthoringDefinition, Backend extends BleCentralBackend> { readonly metadata: BackendAuthorMetadata; readonly factory: BackendTckFactory; readonly featureSuites: readonly TckFeatureSuite[]; } export interface BackendCapabilityReport { readonly backendId: string; readonly platformId: string; readonly capabilities: readonly BackendCapabilityReportEntry[]; } export interface BackendCapabilityReportEntry { readonly id: string; readonly state: 'supported' | 'limited' | 'unsupported' | 'unavailable'; readonly selectedSchemaMinimum: number; readonly selectedSchemaMaximum: number; readonly implementationOrigin: 'backend-native' | 'core-emulated'; readonly tck: { readonly suiteId: string; readonly requiredScenarioIds: readonly string[]; readonly contractMinimum: number; readonly contractMaximum: number; }; readonly evidence: { /** Author-supplied registry evidence; it is not a runner conformance receipt. */ readonly verification: 'author-declared'; readonly receiptId: string; readonly evidenceLevel: 'blocked' | 'deterministic' | 'live-preview' | 'supported' | 'reliability-qualified'; readonly implementationVersion: string; readonly sourceDigest: string; readonly scenarioIds: readonly string[]; }; readonly limitations: readonly Limitation[]; readonly limits: CapabilityLimits; } /** Validates immutable author metadata before a backend reaches an SDK runner. */ export declare function createBackendAuthorDefinition, Backend extends BleCentralBackend>(definition: BackendAuthoringDefinition): BackendAuthoringDefinition; /** Runs the complete base and declared feature TCK for one external backend. */ export declare function runBackendAuthorTck, Backend extends BleCentralBackend>(definition: BackendAuthoringDefinition): Promise; /** Projects only public evidence/capability data from the canonical registry. */ export declare function inspectBackendCapabilities>(backend: BleCentralBackend): BackendCapabilityReport; export declare function featureRegistryOf>(backend: BleCentralBackend): FeatureRegistry; //# sourceMappingURL=backend-sdk-authoring.d.ts.map