import type { BreakpointBackend } from "../backend.js"; import type { BreakpointContext, BackendConfig, RoutingConfig } from "../types.js"; export { ServerBreakpointBackend, ServerBackendError } from "./server.js"; export type { ServerBreakpointBackendConfig } from "./server.js"; export { ExternalTrackerBackend, GenericRestTrackerAdapter, JiraTrackerAdapter, LinearTrackerAdapter, createExternalTrackerAdapter, redactExternalTrackerSecrets, } from "./external-tracker.js"; export type { ExternalTrackerAdapter, ExternalTrackerComment, ExternalTrackerCreateIssueInput, ExternalTrackerIssue, ExternalTrackerReference, ExternalTrackerWebhookEvent, ExternalTrackerWebhookResult, } from "./external-tracker.js"; export { AgentMuxResponderBackend, AgentMuxResponderBackendError, } from "./adapters.js"; export type { AgentMuxClientLike, AgentMuxResponderBackendConfig, AgentMuxRunHandleLike, AgentMuxRunOptions, AgentMuxRunResult, } from "./adapters.js"; /** * Factory function type for creating backends from config. */ export type BackendFactory = (config: Record) => BreakpointBackend; /** * Register a custom backend factory. * Called by extension packages (e.g., custom server backend, GitHub Issues backend). */ export declare function registerBackendFactory(name: string, factory: BackendFactory): void; /** * Create a backend from a type name and config object. * Validates at runtime that the factory returns a BreakpointBackend-conforming object. */ export declare function createBackend(type: string, config: Record): BreakpointBackend; /** * Create the default git-native backend with optional config. * * This is the recommended entry point for consumers who want the built-in * backend without explicit configuration. */ export declare function createDefaultBackend(options?: Record): BreakpointBackend; /** * Resolve the backend for a given config, falling back to defaults. */ export declare function resolveBackend(config: BackendConfig): BreakpointBackend; /** * Match a routing config against a breakpoint context to find the appropriate backend name. * * Uses **first-match-wins** semantics: routes are evaluated in array order and the * first rule whose domain or tag criteria match the context is selected. If no rule * matches, the `defaultBackend` is returned. This means higher-priority rules should * appear earlier in the routes array. There is no automatic conflict resolution -- * if multiple rules could match, the first one in array order wins. * * Matching logic per rule (short-circuit on first hit): * 1. If the rule specifies `domains` and the context has a `domain`, check membership. * 2. If the rule specifies `tags` and the context has tags, check intersection. */ export declare function matchRoute(routingConfig: RoutingConfig, context: BreakpointContext): string; /** * List all registered backend types. */ export declare function listRegisteredBackends(): string[]; //# sourceMappingURL=index.d.ts.map