import { CurrentUser, PersonalProject, Section, Task, WorkspaceProject } from '@doist/todoist-api-typescript';
import { MappedTask } from '../tool-helpers';
import { Priority } from './priorities';
type TaskWithUserFacingPriority = Omit<Task, 'priority'> & {
    priority: Priority;
};
/**
 * Creates a mock Task with all required properties and sensible defaults.
 * Pass only the properties you want to override for your specific test.
 */
export declare function createMockTask({ priority, ...overrides }?: Partial<TaskWithUserFacingPriority>): Task;
/**
 * Creates a mock Section with all required properties and sensible defaults.
 * Pass only the properties you want to override for your specific test.
 */
export declare function createMockSection(overrides?: Partial<Section>): Section;
/**
 * Creates a mock PersonalProject with all required properties and sensible defaults.
 * Pass only the properties you want to override for your specific test.
 */
export declare function createMockProject(overrides?: Partial<PersonalProject>): PersonalProject;
/**
 * Creates a mock WorkspaceProject with all required properties and sensible defaults.
 * Pass only the properties you want to override for your specific test.
 */
export declare function createMockWorkspaceProject(overrides?: Partial<WorkspaceProject>): WorkspaceProject;
/**
 * Creates a mock API response object with results and nextCursor.
 */
export declare function createMockApiResponse<T>(results: T[], nextCursor?: string | null): {
    results: T[];
    nextCursor: string | null;
};
/**
 * Creates a simplified mapped task (matches mapTask output) for filter-based query tests.
 */
export declare function createMappedTask(overrides?: Partial<MappedTask>): MappedTask;
/**
 * Common error messages used across tests.
 */
export declare const TEST_ERRORS: {
    readonly API_RATE_LIMIT: "API Error: Rate limit exceeded";
    readonly API_UNAUTHORIZED: "API Error: Unauthorized";
    readonly INVALID_CURSOR: "Invalid cursor format";
    readonly INVALID_FILTER: "Invalid filter query";
};
/**
 * Creates multiple test cases for parameterized testing.
 */
export declare function createTestCases<T, E = unknown>(cases: Array<{
    name: string;
    input: T;
    expected?: E;
}>): {
    name: string;
    input: T;
    expected?: E;
}[];
/**
 * Common mock IDs used across tests for consistency.
 */
export declare const TEST_IDS: {
    readonly TASK_1: "8485093748";
    readonly TASK_2: "8485093749";
    readonly TASK_3: "8485093750";
    readonly PROJECT_INBOX: "inbox-project-id";
    readonly PROJECT_WORK: "work-project-id";
    readonly PROJECT_TEST: "6cfCcrrCFg2xP94Q";
    readonly PROJECT_WORKSPACE: "workspace-project-id";
    readonly SECTION_1: "section-123";
    readonly SECTION_2: "section-456";
    readonly USER_ID: "713437";
    readonly WORKSPACE_1: "workspace-123";
};
/**
 * Fixed date for consistent test snapshots.
 * Use this instead of new Date() in tests to avoid snapshot drift.
 */
export declare const TODAY: "2025-08-17";
/**
 * Creates a mock CurrentUser with all required properties and sensible defaults.
 * Pass only the properties you want to override for your specific test.
 */
export declare function createMockUser(overrides?: Partial<CurrentUser>): CurrentUser;
export {};
//# sourceMappingURL=test-helpers.d.ts.map