import type { LTApiResult, LTApiAuth } from '../types/sdk';
/**
 * Create a new workflow set and kick off the LLM-powered planner.
 *
 * Persists the workflow set record, then starts an async planner workflow
 * that generates the plan from the specification. Requires at least one
 * LLM API key (OPENAI_API_KEY or ANTHROPIC_API_KEY) to be configured.
 * Returns 409 if a workflow set with the same name already exists.
 *
 * @param input.name — unique name for the workflow set (required)
 * @param input.description — optional description of the workflow set
 * @param input.specification — free-text specification the planner uses to generate workflows (required)
 * @param auth — authenticated user context; userId is forwarded to the planner
 * @returns `{ status: 201, data: { ...set, source_workflow_id, planner_workflow_id } }` the created set with planner IDs
 */
export declare function createWorkflowSet(input: {
    name: string;
    description?: string;
    specification: string;
}, auth?: LTApiAuth): Promise<LTApiResult>;
/**
 * List workflow sets with optional filtering and pagination.
 *
 * @param input.status — filter by workflow set status
 * @param input.search — free-text search term to match against set names or descriptions
 * @param input.limit — maximum number of results to return
 * @param input.offset — number of results to skip for pagination
 * @returns `{ status: 200, data: WorkflowSet[] }` paginated list of workflow sets
 */
export declare function listWorkflowSets(input: {
    status?: string;
    search?: string;
    limit?: number;
    offset?: number;
}): Promise<LTApiResult>;
/**
 * Retrieve a single workflow set by ID.
 *
 * @param input.id — unique identifier of the workflow set
 * @returns `{ status: 200, data: WorkflowSet }` the workflow set record, or 404 if not found
 */
export declare function getWorkflowSet(input: {
    id: string;
}): Promise<LTApiResult>;
/**
 * Replace the plan and optional namespaces on a workflow set.
 *
 * @param input.id — unique identifier of the workflow set to update
 * @param input.plan — array of plan entries (required, must be an array)
 * @param input.namespaces — optional array of namespace definitions associated with the plan
 * @returns `{ status: 200, data: WorkflowSet }` the updated workflow set, or 404 if not found
 */
export declare function updateWorkflowSetPlanApi(input: {
    id: string;
    plan: any[];
    namespaces?: any[];
}): Promise<LTApiResult>;
/**
 * Transition a workflow set from "planned" to "building" status.
 *
 * Returns 409 if the set is not currently in "planned" status.
 *
 * @param input.id — unique identifier of the workflow set to build
 * @returns `{ status: 200, data: { status: 'building', id } }` confirmation the build has started
 */
export declare function buildWorkflowSet(input: {
    id: string;
}): Promise<LTApiResult>;
/**
 * Transition a workflow set to "deploying" status.
 *
 * @param input.id — unique identifier of the workflow set to deploy
 * @returns `{ status: 200, data: { status: 'deploying', id } }` confirmation the deploy has started
 */
export declare function deployWorkflowSet(input: {
    id: string;
}): Promise<LTApiResult>;
/**
 * Add additional workflows to an existing set.
 *
 * Invokes the planner with the new specification and existing set context.
 * The planner appends new plan items (offset build_order) and builds them
 * with sibling schema awareness so composition wiring works.
 */
export declare function addToWorkflowSet(input: {
    id: string;
    specification: string;
}, auth?: LTApiAuth): Promise<LTApiResult>;
