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. Hooks kept by minimum retention remain readable after
 * their workflow runs end, but cannot be resumed.
 *
 * 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>;
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