/** Native Hook extension contract. @experimental */ import * as Result from "effect/Result"; import * as Schema from "effect/Schema"; export declare const HOOK_MANIFEST_SCHEMA_URL = "https://axm.sh/schemas/hook.schema.json"; export declare const HookRuntimeSchema: Schema.Literals; export type HookRuntime = Schema.Schema.Type; export declare const HookPackagePathSchema: Schema.NonEmptyString; /** Symbolic references are preserved, never resolved against the author's environment. */ export declare const HookEnvironmentReferenceSchema: Schema.Struct<{ readonly env: Schema.NonEmptyString; }>; export declare const HookValueSchema: Schema.Union, Schema.Struct<{ readonly env: Schema.NonEmptyString; }>]>; export type HookValue = Schema.Schema.Type; export declare const HookConfigurationValueSchema: Schema.Union]>; export type HookConfigurationValue = Schema.Schema.Type; export declare const HookConfigurationValuesSchema: Schema.$Record]>>; export type HookConfigurationValues = Schema.Schema.Type; export declare const HookConfigurationFieldSchema: Schema.Union; readonly default: Schema.optional; readonly secret: Schema.optional; readonly allowEmpty: Schema.optional; readonly minLength: Schema.optional; readonly maxLength: Schema.optional; readonly description: Schema.optional; readonly required: Schema.optional; }>, Schema.Struct<{ readonly type: Schema.Literal<"number">; readonly default: Schema.optional; readonly minimum: Schema.optional; readonly maximum: Schema.optional; readonly description: Schema.optional; readonly required: Schema.optional; }>, Schema.Struct<{ readonly type: Schema.Literal<"boolean">; readonly default: Schema.optional; readonly description: Schema.optional; readonly required: Schema.optional; }>, Schema.Struct<{ readonly type: Schema.Literal<"enum">; readonly values: Schema.NonEmptyArray; readonly default: Schema.optional; readonly description: Schema.optional; readonly required: Schema.optional; }>]>; export type HookConfigurationField = Schema.Schema.Type; export declare const HookBindingRequirementsSchema: Schema.Struct<{ readonly outcomes: Schema.optional>>; readonly operations: Schema.optional>>; }>; export declare const HookCommandHandlerSchema: Schema.Struct<{ readonly type: Schema.Literal<"command">; readonly name: Schema.optional; readonly runtime: Schema.Literals; readonly entrypoint: Schema.NonEmptyString; readonly args: Schema.optional, Schema.Struct<{ readonly env: Schema.NonEmptyString; }>]>>>; readonly env: Schema.optional, Schema.Struct<{ readonly env: Schema.NonEmptyString; }>]>>>; readonly timeoutMs: Schema.optional; }>; export type HookCommandHandler = Schema.Schema.Type; export declare const HookEventSchema: Schema.NonEmptyString; export type HookEvent = Schema.Schema.Type; export declare const HookBindingSchema: Schema.Struct<{ readonly id: Schema.NonEmptyString; readonly event: Schema.NonEmptyString; readonly matcher: Schema.optional; readonly handler: Schema.Struct<{ readonly type: Schema.Literal<"command">; readonly name: Schema.optional; readonly runtime: Schema.Literals; readonly entrypoint: Schema.NonEmptyString; readonly args: Schema.optional, Schema.Struct<{ readonly env: Schema.NonEmptyString; }>]>>>; readonly env: Schema.optional, Schema.Struct<{ readonly env: Schema.NonEmptyString; }>]>>>; readonly timeoutMs: Schema.optional; }>; readonly requires: Schema.optional>>; readonly operations: Schema.optional>>; }>>; }>; export type HookBinding = Schema.Schema.Type; export declare const HookImplementationSchema: Schema.Struct<{ readonly id: Schema.NonEmptyString; readonly protocol: Schema.Literals; readonly requires: Schema.optional>; readonly profiles: Schema.optional>; readonly platforms: Schema.optional>>; readonly scopes: Schema.optional>>; }>>; readonly bindings: Schema.NonEmptyArray; readonly handler: Schema.Struct<{ readonly type: Schema.Literal<"command">; readonly name: Schema.optional; readonly runtime: Schema.Literals; readonly entrypoint: Schema.NonEmptyString; readonly args: Schema.optional, Schema.Struct<{ readonly env: Schema.NonEmptyString; }>]>>>; readonly env: Schema.optional, Schema.Struct<{ readonly env: Schema.NonEmptyString; }>]>>>; readonly timeoutMs: Schema.optional; }>; readonly requires: Schema.optional>>; readonly operations: Schema.optional>>; }>>; }>>; }>; export type HookImplementation = Schema.Schema.Type; export declare const HookFixtureSchema: Schema.Struct<{ readonly id: Schema.NonEmptyString; readonly implementation: Schema.NonEmptyString; readonly binding: Schema.NonEmptyString; readonly input: Schema.NonEmptyString; readonly expect: Schema.Struct<{ readonly exitCode: Schema.Int; readonly stdout: Schema.optional; readonly stderr: Schema.optional; }>; }>; export type HookFixture = Schema.Schema.Type; export declare const HookManifestSchema: Schema.Struct<{ readonly enhances: Schema.optional>; readonly requires: Schema.optional>; readonly recommendedPacks: Schema.optional>>; readonly standalone: Schema.optional; readonly type: Schema.Literal<"hook">; readonly name: Schema.brand; readonly title: Schema.optional; readonly implementations: Schema.NonEmptyArray; readonly requires: Schema.optional>; readonly profiles: Schema.optional>; readonly platforms: Schema.optional>>; readonly scopes: Schema.optional>>; }>>; readonly bindings: Schema.NonEmptyArray; readonly handler: Schema.Struct<{ readonly type: Schema.Literal<"command">; readonly name: Schema.optional; readonly runtime: Schema.Literals; readonly entrypoint: Schema.NonEmptyString; readonly args: Schema.optional, Schema.Struct<{ readonly env: Schema.NonEmptyString; }>]>>>; readonly env: Schema.optional, Schema.Struct<{ readonly env: Schema.NonEmptyString; }>]>>>; readonly timeoutMs: Schema.optional; }>; readonly requires: Schema.optional>>; readonly operations: Schema.optional>>; }>>; }>>; }>>; readonly configuration: Schema.optional; readonly default: Schema.optional; readonly secret: Schema.optional; readonly allowEmpty: Schema.optional; readonly minLength: Schema.optional; readonly maxLength: Schema.optional; readonly description: Schema.optional; readonly required: Schema.optional; }>, Schema.Struct<{ readonly type: Schema.Literal<"number">; readonly default: Schema.optional; readonly minimum: Schema.optional; readonly maximum: Schema.optional; readonly description: Schema.optional; readonly required: Schema.optional; }>, Schema.Struct<{ readonly type: Schema.Literal<"boolean">; readonly default: Schema.optional; readonly description: Schema.optional; readonly required: Schema.optional; }>, Schema.Struct<{ readonly type: Schema.Literal<"enum">; readonly values: Schema.NonEmptyArray; readonly default: Schema.optional; readonly description: Schema.optional; readonly required: Schema.optional; }>]>>>; readonly assets: Schema.optional>; readonly fixtures: Schema.optional; readonly stderr: Schema.optional; }>; }>>>; readonly publish: Schema.optional>; readonly include: Schema.optional>; readonly exclude: Schema.optional>; }>>; readonly metadata: Schema.optional>>; readonly owner: Schema.brand; readonly version: Schema.brand; readonly description: Schema.optional; readonly keywords: Schema.optional>; readonly repository: Schema.optional; readonly url: Schema.NonEmptyString; readonly directory: Schema.optional; }>]>>; readonly homepage: Schema.optional; readonly license: Schema.optional; readonly bugs: Schema.optional; readonly email: Schema.optional; }>]>>; readonly authors: Schema.optional; readonly url: Schema.optional; }>>>; readonly packages: Schema.optional; readonly versionRange: Schema.optional", ">="]>; readonly version: Schema.NonEmptyString; }>>; }>>, Schema.NonEmptyString, never, never>, "VersRange">>; }>>>; readonly $schema: Schema.optional; }>; export type HookManifest = Schema.Schema.Type; /** Files required to install and activate any declared implementation. */ export declare const requiredHookRuntimeFiles: (manifest: HookManifest) => ReadonlyArray; /** Source-authoring closure; fixtures may be omitted from a distributed package. */ export declare const referencedHookPackageFiles: (manifest: HookManifest) => ReadonlyArray; export interface HookConfigurationIssue { readonly key: string; readonly code: "unknown" | "missing" | "invalid"; readonly message: string; } /** Explicit consumer values override author defaults; no source objects are mutated. */ export declare const resolveHookConfiguration: (manifest: Pick, values?: Readonly>) => Result.Result>, ReadonlyArray>; //# sourceMappingURL=manifest-schema.d.ts.map