export declare const QUESTION_INTAKE_CONTROL_VARIANT: "control"; export declare const QUESTION_INTAKE_TREATMENT_VARIANT: "no_questions"; export interface QuestionIntakeExperimentConfig { enabled: boolean; disabled?: boolean; experimentId: string; questionToolNames: string[]; treatmentInstructions: string; trackedEventNames: string[]; clientTrackedEventNames?: string[]; } export interface QuestionIntakeExperimentAssignment { authUserId: string; experimentId: string; variantId: typeof QUESTION_INTAKE_CONTROL_VARIANT | typeof QUESTION_INTAKE_TREATMENT_VARIANT; } export declare function questionIntakeExposureProperties(assignment: QuestionIntakeExperimentAssignment, context: { appId: string; threadId?: string; turnId: string; }): Record; export declare class QuestionIntakeAssignmentError extends Error { readonly code = "question_intake_assignment_failed"; constructor(experimentId: string, cause: unknown); } export declare class InvalidQuestionIntakeExperimentAssignmentError extends Error { readonly code = "question_intake_assignment_invalid"; constructor(experimentId: string); } export declare function treatmentInstructionsForQuestionIntake(config: QuestionIntakeExperimentConfig | undefined, assignment: QuestionIntakeExperimentAssignment | null): string | undefined; /** Assigns only from the user-create hook while the app config is enabled. */ export declare function assignQuestionIntakeExperimentOnSignup(config: QuestionIntakeExperimentConfig | undefined, authUserId: string | undefined): Promise; /** Reads an existing signup assignment; agent runs never enroll older users. */ export declare function resolveQuestionIntakeExperimentAssignment(config: QuestionIntakeExperimentConfig | undefined, authUserId: string | undefined): Promise;