import { MockFactory, MockFactoryOptions, DatabaseMockOptions, AuthMockOptions, MockUser, MockSession, MockJwtPayload, MockDatabaseRecord, MockApiResponse, MockErrorResponse, MockPagination, MockPaginatedResponse, MockQueryResult, MockConnection } from './types/mock-types.js';
/**
 * Mock Data Factory
 * Generates consistent test data using configurable factories
 */
export declare class MockDataFactory {
    private static sequence;
    /**
     * Set global seed for consistent test data (resets sequences)
     */
    static setSeed(_seed: number): void;
    /**
     * Get next sequence number for a given key
     */
    private static getSequence;
    /**
     * Generate random string
     */
    static randomString(length?: number, prefix?: string): string;
    /**
     * Generate random number within range
     */
    static randomNumber(min?: number, max?: number): number;
    /**
     * Generate random email
     */
    static randomEmail(domain?: string): string;
    /**
     * Generate random phone number
     */
    static randomPhone(countryCode?: string): string;
    /**
     * Generate random date within range
     */
    static randomDate(startDate?: Date, endDate?: Date): Date;
    /**
     * Pick random item from array
     */
    static randomChoice<T>(items: T[]): T;
    /**
     * Generate multiple items using a factory
     */
    static generateMultiple<T>(factory: MockFactory<T>, count: number, options?: MockFactoryOptions): T[];
}
/**
 * User Mock Factory
 */
export declare const createMockUser: MockFactory<MockUser>;
/**
 * Session Mock Factory
 */
export declare const createMockSession: MockFactory<MockSession>;
/**
 * JWT Token Mock Factory
 */
export declare const createMockJwtPayload: MockFactory<MockJwtPayload>;
/**
 * Database Record Mock Factory
 */
export declare const createMockDatabaseRecord: MockFactory<MockDatabaseRecord>;
/**
 * API Response Mock Factory
 */
export declare const createMockApiResponse: MockFactory<MockApiResponse>;
/**
 * Error Response Mock Factory
 */
export declare const createMockErrorResponse: MockFactory<MockErrorResponse>;
/**
 * Validation Error Mock Factory
 */
export declare const createMockValidationError: MockFactory<MockErrorResponse>;
/**
 * Pagination Mock Factory
 */
export declare const createMockPagination: MockFactory<MockPagination>;
/**
 * Paginated Response Mock Factory
 */
export declare const createMockPaginatedResponse: MockFactory<MockPaginatedResponse>;
/**
 * Auth Mock Utilities
 */
export declare class AuthMockUtils {
    /**
     * Create mock JWT token
     */
    static createMockJwtToken(options?: AuthMockOptions): string;
    /**
     * Create mock authentication headers
     */
    static createAuthHeaders(token?: string): Record<string, string>;
    /**
     * Create mock user session
     */
    static createMockUserSession(options?: AuthMockOptions): MockSession;
}
/**
 * Database Mock Utilities
 */
export declare class DatabaseMockUtils {
    /**
     * Create mock database connection
     */
    static createMockConnection(): MockConnection;
    /**
     * Create mock query result
     */
    static createMockQueryResult(rows?: unknown[], rowCount?: number): MockQueryResult;
    /**
     * Setup database mocks for testing
     */
    static setupDatabaseMocks(_options?: DatabaseMockOptions): MockConnection;
}
/**
 * Export all mock factories
 */
export declare const MockFactories: {
    User: MockFactory<MockUser>;
    Session: MockFactory<MockSession>;
    JwtPayload: MockFactory<MockJwtPayload>;
    DatabaseRecord: MockFactory<MockDatabaseRecord>;
    ApiResponse: MockFactory<MockApiResponse<unknown>>;
    ErrorResponse: MockFactory<MockErrorResponse>;
    ValidationError: MockFactory<MockErrorResponse>;
    Pagination: MockFactory<MockPagination>;
    PaginatedResponse: MockFactory<MockPaginatedResponse<unknown>>;
};
//# sourceMappingURL=mock-factories.d.ts.map