/** * SessionStart hook event. * * Fires when a Claude Code session begins, resumes, is cleared, or * compacts. Does not carry `permission_mode`. The primary use-case is * injecting repo-specific context via `addContext`. Supports a matcher * on `source`. See https://code.claude.com/docs/en/hooks#sessionstart. * * @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'; export declare const Source: Schema.Literals; declare const Input_base: Schema.Class; readonly source: Schema.Literals; readonly model: Schema.optional; readonly agent_type: Schema.optionalKey; readonly session_title: 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; }>, {}>; export declare class Input extends Input_base { } declare const HookSpecificOutput_base: Schema.Class; readonly additionalContext: Schema.optional; readonly initialUserMessage: Schema.optional; readonly sessionTitle: Schema.optional; readonly watchPaths: Schema.optional>; readonly reloadSkills: Schema.optional; }>, {}>; export declare class HookSpecificOutput extends HookSpecificOutput_base { } declare const Output_base: Schema.Class; 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 { } export declare const passthrough: () => Output; /** * Inject additional context at the start of the session. Claude will * see this as a system message. The canonical use-case for SessionStart. * * @category Decisions * @since 0.1.0 */ export declare const addContext: (additionalContext: string) => Output; export declare const startWithMessage: (initialUserMessage: string) => Output; export declare const renameSession: (sessionTitle: string) => Output; export declare const watchPaths: (paths: ReadonlyArray, options?: { readonly reloadSkills?: boolean; }) => Output; export declare const reloadSkills: () => Output; export declare const define: (config: { readonly handler: (input: Input) => Effect.Effect; }) => HookDefinition; /** * Build a SessionStart hook that only handles matching `source` values. * * @category Constructors * @since 0.1.0 */ export declare const onMatcher: (config: { readonly matcher: string | RegExp; readonly handler: (input: Input) => Effect.Effect; readonly onMismatch?: (input: Input) => Effect.Effect; }) => HookDefinition; export {}; //# sourceMappingURL=SessionStart.d.ts.map