/**
 * Zod schema for `skill.yaml` — one skill's definition inside a pack.
 *
 * Authoritative source: `docs/opensquid-real-design.md` §"Skill format" +
 * §"Skill properties" + memory `project_opensquid_modular_function_skill_separation`
 * + `project_opensquid_pack_load_hybrid`.
 *
 * A skill is a unit of work-discipline that loads + unloads dynamically based
 * on declared conditions. Rules inside the skill express checks as PROCESSES
 * — compositions of primitive function calls — not as enumerated typed unions.
 * This keeps the schema small while staying expressive.
 *
 * NOT `.strict()`: skills are extended over time (Phase 3 refines
 * `when_to_load` matchers; future phases may add fields). We accept extra keys
 * at load time and let higher layers (rule evaluator, matcher) decide whether
 * an unknown field is meaningful or noise. Manifest is the only file where
 * `.strict()` makes sense — pack identity must not silently typo.
 *
 * `when_to_load` is refined to a `Matcher` discriminated union (Phase 3 Task
 * 3.1) and `unloads_when` to an `UnloadCondition` discriminated union (Phase
 * 3 Task 3.2). Pack authors can use shorthand forms — single-key objects
 * (`- tool_match: Bash`) and bare strings (`- session_ends`) — the schemas'
 * preprocess hooks normalize both to canonical discriminated form.
 *
 * Imports from: zod, ../../runtime/load_matchers, ../../runtime/unload_conditions.
 * Imported by: src/packs/schemas/index.ts.
 */
import { z } from 'zod';
export declare const ProcessStep: z.ZodObject<{
    call: z.ZodString;
    args: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    as: z.ZodOptional<z.ZodString>;
    if: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
    on_empty: z.ZodOptional<z.ZodEnum<["pass", "block", "continue"]>>;
    on_error: z.ZodOptional<z.ZodEnum<["abort", "continue"]>>;
}, "strip", z.ZodTypeAny, {
    call: string;
    args?: Record<string, unknown> | undefined;
    as?: string | undefined;
    if?: string | undefined;
    on_empty?: "block" | "pass" | "continue" | undefined;
    on_error?: "continue" | "abort" | undefined;
}, {
    call: string;
    args?: Record<string, unknown> | undefined;
    as?: string | undefined;
    if?: string | undefined;
    on_empty?: "block" | "pass" | "continue" | undefined;
    on_error?: "continue" | "abort" | undefined;
}>;
export type ProcessStep = z.infer<typeof ProcessStep>;
export declare const RuleKindEnum: z.ZodEnum<["track_check", "destination_check"]>;
export type RuleKindEnum = z.infer<typeof RuleKindEnum>;
export declare const TrackCheckRule: z.ZodObject<{
    id: z.ZodString;
    kind: z.ZodDefault<z.ZodLiteral<"track_check">>;
    requires: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
        kind: z.ZodLiteral<"automation_mode_on">;
    }, "strict", z.ZodTypeAny, {
        kind: "automation_mode_on";
    }, {
        kind: "automation_mode_on";
    }>, z.ZodObject<{
        kind: z.ZodLiteral<"active_task_present">;
    }, "strict", z.ZodTypeAny, {
        kind: "active_task_present";
    }, {
        kind: "active_task_present";
    }>]>, "many">>;
    process: z.ZodArray<z.ZodObject<{
        call: z.ZodString;
        args: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
        as: z.ZodOptional<z.ZodString>;
        if: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
        on_empty: z.ZodOptional<z.ZodEnum<["pass", "block", "continue"]>>;
        on_error: z.ZodOptional<z.ZodEnum<["abort", "continue"]>>;
    }, "strip", z.ZodTypeAny, {
        call: string;
        args?: Record<string, unknown> | undefined;
        as?: string | undefined;
        if?: string | undefined;
        on_empty?: "block" | "pass" | "continue" | undefined;
        on_error?: "continue" | "abort" | undefined;
    }, {
        call: string;
        args?: Record<string, unknown> | undefined;
        as?: string | undefined;
        if?: string | undefined;
        on_empty?: "block" | "pass" | "continue" | undefined;
        on_error?: "continue" | "abort" | undefined;
    }>, "many">;
}, "strip", z.ZodTypeAny, {
    kind: "track_check";
    id: string;
    requires: ({
        kind: "automation_mode_on";
    } | {
        kind: "active_task_present";
    })[];
    process: {
        call: string;
        args?: Record<string, unknown> | undefined;
        as?: string | undefined;
        if?: string | undefined;
        on_empty?: "block" | "pass" | "continue" | undefined;
        on_error?: "continue" | "abort" | undefined;
    }[];
}, {
    id: string;
    process: {
        call: string;
        args?: Record<string, unknown> | undefined;
        as?: string | undefined;
        if?: string | undefined;
        on_empty?: "block" | "pass" | "continue" | undefined;
        on_error?: "continue" | "abort" | undefined;
    }[];
    kind?: "track_check" | undefined;
    requires?: ({
        kind: "automation_mode_on";
    } | {
        kind: "active_task_present";
    })[] | undefined;
}>;
export type TrackCheckRule = z.infer<typeof TrackCheckRule>;
export declare const DestinationCheckRule: z.ZodObject<{
    id: z.ZodString;
    kind: z.ZodLiteral<"destination_check">;
    interval: z.ZodObject<{
        every_n_tool_calls: z.ZodNumber;
    }, "strip", z.ZodTypeAny, {
        every_n_tool_calls: number;
    }, {
        every_n_tool_calls: number;
    }>;
    model_alias: z.ZodDefault<z.ZodString>;
    prompt_template: z.ZodString;
}, "strip", z.ZodTypeAny, {
    kind: "destination_check";
    id: string;
    model_alias: string;
    interval: {
        every_n_tool_calls: number;
    };
    prompt_template: string;
}, {
    kind: "destination_check";
    id: string;
    interval: {
        every_n_tool_calls: number;
    };
    prompt_template: string;
    model_alias?: string | undefined;
}>;
export type DestinationCheckRule = z.infer<typeof DestinationCheckRule>;
export declare const Rule: z.ZodEffects<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
    id: z.ZodString;
    kind: z.ZodDefault<z.ZodLiteral<"track_check">>;
    requires: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
        kind: z.ZodLiteral<"automation_mode_on">;
    }, "strict", z.ZodTypeAny, {
        kind: "automation_mode_on";
    }, {
        kind: "automation_mode_on";
    }>, z.ZodObject<{
        kind: z.ZodLiteral<"active_task_present">;
    }, "strict", z.ZodTypeAny, {
        kind: "active_task_present";
    }, {
        kind: "active_task_present";
    }>]>, "many">>;
    process: z.ZodArray<z.ZodObject<{
        call: z.ZodString;
        args: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
        as: z.ZodOptional<z.ZodString>;
        if: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
        on_empty: z.ZodOptional<z.ZodEnum<["pass", "block", "continue"]>>;
        on_error: z.ZodOptional<z.ZodEnum<["abort", "continue"]>>;
    }, "strip", z.ZodTypeAny, {
        call: string;
        args?: Record<string, unknown> | undefined;
        as?: string | undefined;
        if?: string | undefined;
        on_empty?: "block" | "pass" | "continue" | undefined;
        on_error?: "continue" | "abort" | undefined;
    }, {
        call: string;
        args?: Record<string, unknown> | undefined;
        as?: string | undefined;
        if?: string | undefined;
        on_empty?: "block" | "pass" | "continue" | undefined;
        on_error?: "continue" | "abort" | undefined;
    }>, "many">;
}, "strip", z.ZodTypeAny, {
    kind: "track_check";
    id: string;
    requires: ({
        kind: "automation_mode_on";
    } | {
        kind: "active_task_present";
    })[];
    process: {
        call: string;
        args?: Record<string, unknown> | undefined;
        as?: string | undefined;
        if?: string | undefined;
        on_empty?: "block" | "pass" | "continue" | undefined;
        on_error?: "continue" | "abort" | undefined;
    }[];
}, {
    id: string;
    process: {
        call: string;
        args?: Record<string, unknown> | undefined;
        as?: string | undefined;
        if?: string | undefined;
        on_empty?: "block" | "pass" | "continue" | undefined;
        on_error?: "continue" | "abort" | undefined;
    }[];
    kind?: "track_check" | undefined;
    requires?: ({
        kind: "automation_mode_on";
    } | {
        kind: "active_task_present";
    })[] | undefined;
}>, z.ZodObject<{
    id: z.ZodString;
    kind: z.ZodLiteral<"destination_check">;
    interval: z.ZodObject<{
        every_n_tool_calls: z.ZodNumber;
    }, "strip", z.ZodTypeAny, {
        every_n_tool_calls: number;
    }, {
        every_n_tool_calls: number;
    }>;
    model_alias: z.ZodDefault<z.ZodString>;
    prompt_template: z.ZodString;
}, "strip", z.ZodTypeAny, {
    kind: "destination_check";
    id: string;
    model_alias: string;
    interval: {
        every_n_tool_calls: number;
    };
    prompt_template: string;
}, {
    kind: "destination_check";
    id: string;
    interval: {
        every_n_tool_calls: number;
    };
    prompt_template: string;
    model_alias?: string | undefined;
}>]>, {
    kind: "track_check";
    id: string;
    requires: ({
        kind: "automation_mode_on";
    } | {
        kind: "active_task_present";
    })[];
    process: {
        call: string;
        args?: Record<string, unknown> | undefined;
        as?: string | undefined;
        if?: string | undefined;
        on_empty?: "block" | "pass" | "continue" | undefined;
        on_error?: "continue" | "abort" | undefined;
    }[];
} | {
    kind: "destination_check";
    id: string;
    model_alias: string;
    interval: {
        every_n_tool_calls: number;
    };
    prompt_template: string;
}, unknown>;
export type Rule = z.infer<typeof Rule>;
/**
 * Re-export the eight event kinds as the canonical trigger-kind set.
 *
 * Trigger.kind ⊆ EventKind by construction (each `Trigger` variant's
 * discriminator is one of the eight `EventKind` literals). Consumers that
 * need the bare set of trigger kinds (audit logs, doctor output, AUTO.2
 * `rate_limits:` keys) import this rather than re-typing the literals.
 *
 * The `Trigger` schema + `DEFAULT_TRIGGERS` constant itself lives in
 * `runtime/types.ts` (single source of truth alongside `Event`). YAML
 * callers should import them from there directly; skill.ts only references
 * them via the local `import` for the Skill schema's `triggers:` field.
 */
export declare const TriggerKind: z.ZodEnum<["tool_call", "post_tool_call", "prompt_submit", "session_end", "stop", "session_start", "schedule", "webhook", "inbound_channel", "file_changed"]>;
export type TriggerKind = z.infer<typeof TriggerKind>;
export declare const LoadModeEnum: z.ZodEnum<["preload", "lazy"]>;
export type LoadModeEnum = z.infer<typeof LoadModeEnum>;
export declare const Skill: z.ZodObject<{
    name: z.ZodString;
    load: z.ZodDefault<z.ZodEnum<["preload", "lazy"]>>;
    when_to_load: z.ZodDefault<z.ZodArray<z.ZodEffects<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
        kind: z.ZodLiteral<"tool_match">;
        tool: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        kind: "tool_match";
        tool: string;
    }, {
        kind: "tool_match";
        tool: string;
    }>, z.ZodObject<{
        kind: z.ZodLiteral<"command_pattern">;
        pattern: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        kind: "command_pattern";
        pattern: string;
    }, {
        kind: "command_pattern";
        pattern: string;
    }>, z.ZodObject<{
        kind: z.ZodLiteral<"file_glob">;
        glob: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        kind: "file_glob";
        glob: string;
    }, {
        kind: "file_glob";
        glob: string;
    }>, z.ZodObject<{
        kind: z.ZodLiteral<"event_type">;
        type: z.ZodEnum<["tool_call", "post_tool_call", "prompt_submit", "session_end", "stop", "session_start", "schedule", "webhook", "inbound_channel", "file_changed"]>;
    }, "strip", z.ZodTypeAny, {
        kind: "event_type";
        type: "tool_call" | "post_tool_call" | "prompt_submit" | "session_end" | "stop" | "session_start" | "schedule" | "webhook" | "inbound_channel" | "file_changed";
    }, {
        kind: "event_type";
        type: "tool_call" | "post_tool_call" | "prompt_submit" | "session_end" | "stop" | "session_start" | "schedule" | "webhook" | "inbound_channel" | "file_changed";
    }>]>, {
        kind: "tool_match";
        tool: string;
    } | {
        kind: "command_pattern";
        pattern: string;
    } | {
        kind: "file_glob";
        glob: string;
    } | {
        kind: "event_type";
        type: "tool_call" | "post_tool_call" | "prompt_submit" | "session_end" | "stop" | "session_start" | "schedule" | "webhook" | "inbound_channel" | "file_changed";
    }, unknown>, "many">>;
    requires: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
        kind: z.ZodLiteral<"automation_mode_on">;
    }, "strict", z.ZodTypeAny, {
        kind: "automation_mode_on";
    }, {
        kind: "automation_mode_on";
    }>, z.ZodObject<{
        kind: z.ZodLiteral<"active_task_present">;
    }, "strict", z.ZodTypeAny, {
        kind: "active_task_present";
    }, {
        kind: "active_task_present";
    }>]>, "many">>;
    unloads_when: z.ZodDefault<z.ZodArray<z.ZodEffects<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
        kind: z.ZodLiteral<"active_task_completes">;
    }, "strip", z.ZodTypeAny, {
        kind: "active_task_completes";
    }, {
        kind: "active_task_completes";
    }>, z.ZodObject<{
        kind: z.ZodLiteral<"session_ends">;
    }, "strip", z.ZodTypeAny, {
        kind: "session_ends";
    }, {
        kind: "session_ends";
    }>, z.ZodObject<{
        kind: z.ZodLiteral<"idle_n_turns">;
        n: z.ZodNumber;
    }, "strip", z.ZodTypeAny, {
        kind: "idle_n_turns";
        n: number;
    }, {
        kind: "idle_n_turns";
        n: number;
    }>]>, {
        kind: "active_task_completes";
    } | {
        kind: "session_ends";
    } | {
        kind: "idle_n_turns";
        n: number;
    }, unknown>, "many">>;
    triggers: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
        kind: z.ZodLiteral<"tool_call">;
    }, "strip", z.ZodTypeAny, {
        kind: "tool_call";
    }, {
        kind: "tool_call";
    }>, z.ZodObject<{
        kind: z.ZodLiteral<"post_tool_call">;
    }, "strip", z.ZodTypeAny, {
        kind: "post_tool_call";
    }, {
        kind: "post_tool_call";
    }>, z.ZodObject<{
        kind: z.ZodLiteral<"prompt_submit">;
    }, "strip", z.ZodTypeAny, {
        kind: "prompt_submit";
    }, {
        kind: "prompt_submit";
    }>, z.ZodObject<{
        kind: z.ZodLiteral<"session_end">;
    }, "strip", z.ZodTypeAny, {
        kind: "session_end";
    }, {
        kind: "session_end";
    }>, z.ZodObject<{
        kind: z.ZodLiteral<"stop">;
    }, "strip", z.ZodTypeAny, {
        kind: "stop";
    }, {
        kind: "stop";
    }>, z.ZodObject<{
        kind: z.ZodLiteral<"session_start">;
    }, "strip", z.ZodTypeAny, {
        kind: "session_start";
    }, {
        kind: "session_start";
    }>, z.ZodObject<{
        kind: z.ZodLiteral<"schedule">;
        cron: z.ZodOptional<z.ZodString>;
        cost_tier: z.ZodOptional<z.ZodEnum<["cheap", "balanced", "premium"]>>;
    }, "strip", z.ZodTypeAny, {
        kind: "schedule";
        cron?: string | undefined;
        cost_tier?: "cheap" | "balanced" | "premium" | undefined;
    }, {
        kind: "schedule";
        cron?: string | undefined;
        cost_tier?: "cheap" | "balanced" | "premium" | undefined;
    }>, z.ZodObject<{
        kind: z.ZodLiteral<"webhook">;
        path: z.ZodOptional<z.ZodString>;
        cost_tier: z.ZodOptional<z.ZodEnum<["cheap", "balanced", "premium"]>>;
    }, "strip", z.ZodTypeAny, {
        kind: "webhook";
        path?: string | undefined;
        cost_tier?: "cheap" | "balanced" | "premium" | undefined;
    }, {
        kind: "webhook";
        path?: string | undefined;
        cost_tier?: "cheap" | "balanced" | "premium" | undefined;
    }>, z.ZodObject<{
        kind: z.ZodLiteral<"inbound_channel">;
        channel: z.ZodOptional<z.ZodString>;
        sender_pattern: z.ZodOptional<z.ZodString>;
        cost_tier: z.ZodOptional<z.ZodEnum<["cheap", "balanced", "premium"]>>;
    }, "strip", z.ZodTypeAny, {
        kind: "inbound_channel";
        cost_tier?: "cheap" | "balanced" | "premium" | undefined;
        channel?: string | undefined;
        sender_pattern?: string | undefined;
    }, {
        kind: "inbound_channel";
        cost_tier?: "cheap" | "balanced" | "premium" | undefined;
        channel?: string | undefined;
        sender_pattern?: string | undefined;
    }>, z.ZodObject<{
        kind: z.ZodLiteral<"file_changed">;
        paths: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        ignored: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        cost_tier: z.ZodOptional<z.ZodEnum<["cheap", "balanced", "premium"]>>;
    }, "strip", z.ZodTypeAny, {
        kind: "file_changed";
        cost_tier?: "cheap" | "balanced" | "premium" | undefined;
        paths?: string[] | undefined;
        ignored?: string[] | undefined;
    }, {
        kind: "file_changed";
        cost_tier?: "cheap" | "balanced" | "premium" | undefined;
        paths?: string[] | undefined;
        ignored?: string[] | undefined;
    }>]>, "many">>;
    rules: z.ZodDefault<z.ZodArray<z.ZodEffects<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
        id: z.ZodString;
        kind: z.ZodDefault<z.ZodLiteral<"track_check">>;
        requires: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
            kind: z.ZodLiteral<"automation_mode_on">;
        }, "strict", z.ZodTypeAny, {
            kind: "automation_mode_on";
        }, {
            kind: "automation_mode_on";
        }>, z.ZodObject<{
            kind: z.ZodLiteral<"active_task_present">;
        }, "strict", z.ZodTypeAny, {
            kind: "active_task_present";
        }, {
            kind: "active_task_present";
        }>]>, "many">>;
        process: z.ZodArray<z.ZodObject<{
            call: z.ZodString;
            args: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
            as: z.ZodOptional<z.ZodString>;
            if: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
            on_empty: z.ZodOptional<z.ZodEnum<["pass", "block", "continue"]>>;
            on_error: z.ZodOptional<z.ZodEnum<["abort", "continue"]>>;
        }, "strip", z.ZodTypeAny, {
            call: string;
            args?: Record<string, unknown> | undefined;
            as?: string | undefined;
            if?: string | undefined;
            on_empty?: "block" | "pass" | "continue" | undefined;
            on_error?: "continue" | "abort" | undefined;
        }, {
            call: string;
            args?: Record<string, unknown> | undefined;
            as?: string | undefined;
            if?: string | undefined;
            on_empty?: "block" | "pass" | "continue" | undefined;
            on_error?: "continue" | "abort" | undefined;
        }>, "many">;
    }, "strip", z.ZodTypeAny, {
        kind: "track_check";
        id: string;
        requires: ({
            kind: "automation_mode_on";
        } | {
            kind: "active_task_present";
        })[];
        process: {
            call: string;
            args?: Record<string, unknown> | undefined;
            as?: string | undefined;
            if?: string | undefined;
            on_empty?: "block" | "pass" | "continue" | undefined;
            on_error?: "continue" | "abort" | undefined;
        }[];
    }, {
        id: string;
        process: {
            call: string;
            args?: Record<string, unknown> | undefined;
            as?: string | undefined;
            if?: string | undefined;
            on_empty?: "block" | "pass" | "continue" | undefined;
            on_error?: "continue" | "abort" | undefined;
        }[];
        kind?: "track_check" | undefined;
        requires?: ({
            kind: "automation_mode_on";
        } | {
            kind: "active_task_present";
        })[] | undefined;
    }>, z.ZodObject<{
        id: z.ZodString;
        kind: z.ZodLiteral<"destination_check">;
        interval: z.ZodObject<{
            every_n_tool_calls: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            every_n_tool_calls: number;
        }, {
            every_n_tool_calls: number;
        }>;
        model_alias: z.ZodDefault<z.ZodString>;
        prompt_template: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        kind: "destination_check";
        id: string;
        model_alias: string;
        interval: {
            every_n_tool_calls: number;
        };
        prompt_template: string;
    }, {
        kind: "destination_check";
        id: string;
        interval: {
            every_n_tool_calls: number;
        };
        prompt_template: string;
        model_alias?: string | undefined;
    }>]>, {
        kind: "track_check";
        id: string;
        requires: ({
            kind: "automation_mode_on";
        } | {
            kind: "active_task_present";
        })[];
        process: {
            call: string;
            args?: Record<string, unknown> | undefined;
            as?: string | undefined;
            if?: string | undefined;
            on_empty?: "block" | "pass" | "continue" | undefined;
            on_error?: "continue" | "abort" | undefined;
        }[];
    } | {
        kind: "destination_check";
        id: string;
        model_alias: string;
        interval: {
            every_n_tool_calls: number;
        };
        prompt_template: string;
    }, unknown>, "many">>;
    tools: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
    prose: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    name: string;
    tools: string[];
    requires: ({
        kind: "automation_mode_on";
    } | {
        kind: "active_task_present";
    })[];
    load: "preload" | "lazy";
    when_to_load: ({
        kind: "tool_match";
        tool: string;
    } | {
        kind: "command_pattern";
        pattern: string;
    } | {
        kind: "file_glob";
        glob: string;
    } | {
        kind: "event_type";
        type: "tool_call" | "post_tool_call" | "prompt_submit" | "session_end" | "stop" | "session_start" | "schedule" | "webhook" | "inbound_channel" | "file_changed";
    })[];
    unloads_when: ({
        kind: "active_task_completes";
    } | {
        kind: "session_ends";
    } | {
        kind: "idle_n_turns";
        n: number;
    })[];
    triggers: ({
        kind: "tool_call";
    } | {
        kind: "post_tool_call";
    } | {
        kind: "prompt_submit";
    } | {
        kind: "session_end";
    } | {
        kind: "stop";
    } | {
        kind: "session_start";
    } | {
        kind: "schedule";
        cron?: string | undefined;
        cost_tier?: "cheap" | "balanced" | "premium" | undefined;
    } | {
        kind: "webhook";
        path?: string | undefined;
        cost_tier?: "cheap" | "balanced" | "premium" | undefined;
    } | {
        kind: "inbound_channel";
        cost_tier?: "cheap" | "balanced" | "premium" | undefined;
        channel?: string | undefined;
        sender_pattern?: string | undefined;
    } | {
        kind: "file_changed";
        cost_tier?: "cheap" | "balanced" | "premium" | undefined;
        paths?: string[] | undefined;
        ignored?: string[] | undefined;
    })[];
    rules: ({
        kind: "track_check";
        id: string;
        requires: ({
            kind: "automation_mode_on";
        } | {
            kind: "active_task_present";
        })[];
        process: {
            call: string;
            args?: Record<string, unknown> | undefined;
            as?: string | undefined;
            if?: string | undefined;
            on_empty?: "block" | "pass" | "continue" | undefined;
            on_error?: "continue" | "abort" | undefined;
        }[];
    } | {
        kind: "destination_check";
        id: string;
        model_alias: string;
        interval: {
            every_n_tool_calls: number;
        };
        prompt_template: string;
    })[];
    prose?: string | undefined;
}, {
    name: string;
    tools?: string[] | undefined;
    requires?: ({
        kind: "automation_mode_on";
    } | {
        kind: "active_task_present";
    })[] | undefined;
    load?: "preload" | "lazy" | undefined;
    when_to_load?: unknown[] | undefined;
    unloads_when?: unknown[] | undefined;
    triggers?: ({
        kind: "tool_call";
    } | {
        kind: "post_tool_call";
    } | {
        kind: "prompt_submit";
    } | {
        kind: "session_end";
    } | {
        kind: "stop";
    } | {
        kind: "session_start";
    } | {
        kind: "schedule";
        cron?: string | undefined;
        cost_tier?: "cheap" | "balanced" | "premium" | undefined;
    } | {
        kind: "webhook";
        path?: string | undefined;
        cost_tier?: "cheap" | "balanced" | "premium" | undefined;
    } | {
        kind: "inbound_channel";
        cost_tier?: "cheap" | "balanced" | "premium" | undefined;
        channel?: string | undefined;
        sender_pattern?: string | undefined;
    } | {
        kind: "file_changed";
        cost_tier?: "cheap" | "balanced" | "premium" | undefined;
        paths?: string[] | undefined;
        ignored?: string[] | undefined;
    })[] | undefined;
    rules?: unknown[] | undefined;
    prose?: string | undefined;
}>;
export type Skill = z.infer<typeof Skill>;
//# sourceMappingURL=skill.d.ts.map