export type PersistentGoalUserAction = 'pause' | 'resume' | 'clear' | 'restart';
export type PersistentGoalUserActionResult = {
    kind: 'updated';
    customData: Record<string, unknown>;
    kickoff?: string;
} | {
    kind: 'noop';
    message: string;
} | {
    kind: 'error';
    error: string;
};
export interface GoalsConfigSlice {
    maxTurns?: number;
    judgeModelRef?: string;
}
/**
 * Pure transition for `/goal` slash and `POST /api/goals/webchat` so behaviour stays aligned.
 */
export declare function applyPersistentGoalUserAction(customData: Record<string, unknown> | undefined, action: PersistentGoalUserAction, goalsCfg?: GoalsConfigSlice): PersistentGoalUserActionResult;
