import { Client } from '@botpress/client';
import { z } from '../library';
import { WorkflowDataRequestEvent } from '../runtime';
type UpdateWorkflowInput = Client['updateWorkflow'];
export declare const updateWorkflow: UpdateWorkflowInput;
/**
 * Type guard to check if an event is a workflow data request.
 * Use this in conversation handlers to detect when a workflow needs data.
 * @param event - The event to check
 * @returns True if the event is a WorkflowDataRequestEvent
 * @example
 * if (isWorkflowDataRequest(event)) {
 *   await MyWorkflow.provide(event, { orderId: "12345" });
 * }
 */
export declare function isWorkflowDataRequest(event: unknown): event is {
    type: typeof WorkflowDataRequestEvent.name;
    payload: z.infer<typeof WorkflowDataRequestEvent.schema>;
};
/**
 * Type guard to narrow workflow instance by name.
 * Use this in conversation handlers to get properly typed workflow instances.
 * @param workflow - The workflow instance to check
 * @param name - The workflow name to check against
 * @returns True if the workflow matches the given name
 * @example
 * if (type === 'workflow_request' && isWorkflow(workflow, 'test3')) {
 *   // workflow is now typed as BaseWorkflowInstance<'test3'>
 *   await workflow.provide('topic', { topic: "Hello" });
 * }
 */
export declare function isWorkflow<TName extends string>(workflow: {
    name: string;
} | undefined, name: TName): workflow is import('./workflow-instance').BaseWorkflowInstance<TName extends keyof import('../_types/workflows').WorkflowDefinitions ? TName : never>;
export {};
//# sourceMappingURL=workflow-utils.d.ts.map