import { z } from '#compiled/zod/index.js';
import type { SerializedData } from './serialization.js';
import type { PaginationOptions, ResolveData } from './shared.js';
/**
 * Schema for workflow hooks.
 *
 * Note: metadata uses SerializedDataSchema to support both:
 * - specVersion >= 2: Uint8Array (binary devalue format)
 * - specVersion 1: any (legacy JSON format)
 */
export declare const HookSchema: z.ZodObject<{
    runId: z.ZodString;
    hookId: z.ZodString;
    token: z.ZodString;
    ownerId: z.ZodString;
    projectId: z.ZodString;
    environment: z.ZodString;
    metadata: z.ZodOptional<z.ZodUnion<readonly [z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>, z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>]>>;
    createdAt: z.ZodCoercedDate<unknown>;
    specVersion: z.ZodOptional<z.ZodNumber>;
    isWebhook: z.ZodOptional<z.ZodBoolean>;
    isSystem: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>;
/**
 * Represents a hook that can be used to resume a paused workflow run.
 *
 * Note: metadata type is SerializedData to support both:
 * - specVersion >= 2: Uint8Array (binary devalue format)
 * - specVersion 1: unknown (legacy JSON format)
 */
export type Hook = z.infer<typeof HookSchema> & {
    /** The unique identifier of the workflow run this hook belongs to. */
    runId: string;
    /** The unique identifier of this hook within the workflow run. */
    hookId: string;
    /** The secret token used to reference this hook. */
    token: string;
    /** The owner ID (team or user) that owns this hook. */
    ownerId: string;
    /** The project ID this hook belongs to. */
    projectId: string;
    /** The environment (e.g., "production", "preview", "development") where this hook was created. */
    environment: string;
    /** Optional metadata associated with the hook, set when the hook was created. */
    metadata?: SerializedData;
    /** The timestamp when this hook was created. */
    createdAt: Date;
    /** The spec version when this hook was created. */
    specVersion?: number;
    /** Whether this hook is resumable via the public webhook endpoint. undefined = legacy (treated as true for backwards compat). */
    isWebhook?: boolean;
    /** Whether this hook is a system-managed hook (e.g., for abort signals). */
    isSystem?: boolean;
};
export interface CreateHookRequest {
    hookId: string;
    token: string;
    metadata?: SerializedData;
    isWebhook?: boolean;
}
export interface GetHookByTokenParams {
    token: string;
}
export interface ListHooksParams {
    runId?: string;
    pagination?: PaginationOptions;
    resolveData?: ResolveData;
}
export interface GetHookParams {
    resolveData?: ResolveData;
}
//# sourceMappingURL=hooks.d.ts.map