import type { BaseApiClient } from '../types/api';
import type { ActivityHistoryResponse, ActivityTableItem, ActivityHistoryFilters, ActivityPagination, ActivityFilterOption } from '../types/activitiesHistory';
/**
 * Options for configuring the useActivitiesHistory hook
 */
export interface UseActivitiesHistoryOptions {
    /** Filter by activity category (PROVA, ATIVIDADE, etc.) */
    activityCategory?: 'PROVA' | 'ATIVIDADE';
}
/**
 * API filter options extracted from response
 */
export interface ActivityApiFilterOptions {
    schools: ActivityFilterOption[];
    classes: ActivityFilterOption[];
    subjects: ActivityFilterOption[];
    schoolYears: ActivityFilterOption[];
}
/**
 * Hook state interface
 */
export interface UseActivitiesHistoryState {
    activities: ActivityTableItem[];
    loading: boolean;
    error: string | null;
    pagination: ActivityPagination;
    apiFilterOptions: ActivityApiFilterOptions;
}
/**
 * Hook return type
 */
export interface UseActivitiesHistoryReturn extends UseActivitiesHistoryState {
    fetchActivities: (filters?: ActivityHistoryFilters) => Promise<void>;
}
/**
 * Default pagination values
 */
export declare const DEFAULT_ACTIVITIES_PAGINATION: ActivityPagination;
/**
 * Default API filter options
 */
export declare const DEFAULT_ACTIVITY_FILTER_OPTIONS: ActivityApiFilterOptions;
/**
 * Transform API response to table item format
 * @param activity - Activity from API response
 * @returns Formatted activity for table display
 */
export declare const transformActivityToTableItem: (activity: ActivityHistoryResponse) => ActivityTableItem;
/**
 * Extract unique filter options from activities API response.
 * Delegates to the shared extractBreakdownFilterOptions helper.
 */
export declare const extractActivityFilterOptions: (activities: ActivityHistoryResponse[]) => ActivityApiFilterOptions;
/**
 * Build the `/activities/history` query params from the raw TableProvider filter
 * keys. TableProvider emits UI-category keys (`subject`, `school`, `class`,
 * `schoolYear`, `status`, `creatorType`) as arrays; the backend expects a
 * different, mostly single-value contract. This adapter renames each key and
 * collapses/serializes to what the backend actually reads. Mirrors
 * `buildFiltersFromParams` in RecommendedLessonsHistory.
 *
 * @param filters - Raw table params (arrays under UI keys) plus page/limit/search/sort
 * @param activityCategory - Optional value forwarded as the `type` param
 */
export declare const buildActivityHistoryQueryParams: (filters?: Record<string, unknown>, activityCategory?: string) => Record<string, unknown>;
/**
 * Factory function to create useActivitiesHistory hook
 *
 * @param apiClient - API client instance (axios, fetch wrapper, etc.)
 * @param options - Hook configuration options
 * @returns Hook for managing activities history
 *
 * @example
 * ```tsx
 * import { createUseActivitiesHistory } from 'analytica-frontend-lib';
 * import api from '@/services/apiService';
 *
 * const useActivitiesHistory = createUseActivitiesHistory(api, { activityCategory: 'ATIVIDADE' });
 *
 * // In your component
 * const { activities, loading, fetchActivities, apiFilterOptions } = useActivitiesHistory();
 * ```
 */
export declare const createUseActivitiesHistory: (apiClient: BaseApiClient, options?: UseActivitiesHistoryOptions) => () => UseActivitiesHistoryReturn;
/**
 * Alias for createUseActivitiesHistory
 */
export declare const createActivitiesHistoryHook: (apiClient: BaseApiClient, options?: UseActivitiesHistoryOptions) => () => UseActivitiesHistoryReturn;
//# sourceMappingURL=useActivitiesHistory.d.ts.map