/** * Stop hook event. * * Fires when Claude finishes responding and is about to end its turn. * A handler can return `block` with a reason to force Claude to continue * the conversation instead of stopping. Does not support a matcher. * See https://code.claude.com/docs/en/hooks#stop. * * @since 0.1.0 */ import * as Effect from 'effect/Effect'; import * as Schema from 'effect/Schema'; import type { HookContext } from '../Context.js'; import type { HookDefinition } from '../Runner.js'; declare const BackgroundTask_base: Schema.Class; readonly command: Schema.optional; readonly agent_type: Schema.optional; readonly server: Schema.optional; readonly tool: Schema.optional; readonly name: Schema.optional; }>, {}>; export declare class BackgroundTask extends BackgroundTask_base { } declare const SessionCron_base: Schema.Class, {}>; export declare class SessionCron extends SessionCron_base { } declare const Input_base: Schema.Class; readonly stop_hook_active: Schema.Boolean; readonly last_assistant_message: Schema.optional; readonly background_tasks: Schema.optional>; readonly session_crons: Schema.optional>; readonly session_id: Schema.String; readonly transcript_path: Schema.String; readonly cwd: Schema.String; readonly permission_mode: Schema.optionalKey; readonly effort: Schema.optionalKey; readonly agent_id: Schema.optionalKey; readonly agent_type: Schema.optionalKey; }>, {}>; export declare class Input extends Input_base { } declare const HookSpecificOutput_base: Schema.Class; readonly additionalContext: Schema.optional; }>, {}>; export declare class HookSpecificOutput extends HookSpecificOutput_base { } declare const Output_base: Schema.Class>; readonly reason: Schema.optional; readonly continue: Schema.optional; readonly stopReason: Schema.optional; readonly suppressOutput: Schema.optional; readonly systemMessage: Schema.optional; readonly terminalSequence: Schema.optional; readonly hookSpecificOutput: Schema.optional; }>, {}>; export declare class Output extends Output_base { } /** * Allow Claude to stop its turn (the default). * * @category Decisions * @since 0.1.0 */ export declare const allowStop: () => Output; /** * Force Claude to continue responding by emitting `decision: "block"`. * The `reason` is fed back to Claude as instructions for the continuation. * * @category Decisions * @since 0.1.0 */ export declare const block: (reason: string) => Output; export declare const addContext: (additionalContext: string) => Output; export declare const define: (config: { readonly handler: (input: Input) => Effect.Effect; }) => HookDefinition; export {}; //# sourceMappingURL=Stop.d.ts.map