import type { BaseApiClient } from '../../types/api';
import type { ActivityModelFilters, ActivityModelResponse, ActivityModelTableItem, ActivityPagination } from '../../types/activitiesHistory';
/**
 * Options for configuring the useActivityDrafts hook
 */
export interface UseActivityDraftsOptions {
    /** Filter by activity category (PROVA, ATIVIDADE, etc.) */
    activityCategory?: 'PROVA' | 'ATIVIDADE';
}
/**
 * Hook state interface
 */
export interface UseActivityDraftsState {
    drafts: ActivityModelTableItem[];
    loading: boolean;
    error: string | null;
    pagination: ActivityPagination;
}
/**
 * Hook return type
 */
export interface UseActivityDraftsReturn extends UseActivityDraftsState {
    fetchDrafts: (filters?: ActivityModelFilters) => Promise<void>;
    deleteDraft: (id: string) => Promise<void>;
}
/**
 * Default pagination values
 */
export declare const DEFAULT_DRAFTS_PAGINATION: ActivityPagination;
/**
 * Transform API response to table item format
 * @param draft - Draft from API response
 * @param subjectsMap - Optional map of subject IDs to names
 * @returns Formatted draft for table display
 */
export declare const transformDraftToTableItem: (draft: ActivityModelResponse, subjectsMap?: Map<string, string>) => ActivityModelTableItem;
/**
 * Factory function to create useActivityDrafts hook
 *
 * @param apiClient - API client instance (axios, fetch wrapper, etc.)
 * @param options - Hook configuration options
 * @returns Hook for managing activity drafts
 *
 * @example
 * ```tsx
 * // For activities
 * import { createUseActivityDrafts } from 'analytica-frontend-lib';
 * import api from '@/services/apiService';
 *
 * const useActivityDrafts = createUseActivityDrafts(api, { activityCategory: 'ATIVIDADE' });
 *
 * // For exams (provas)
 * const useExamDrafts = createUseActivityDrafts(api, { activityCategory: 'PROVA' });
 *
 * // In your component
 * const { drafts, loading, fetchDrafts, deleteDraft } = useActivityDrafts();
 * ```
 */
export declare const createUseActivityDrafts: (apiClient: BaseApiClient, options?: UseActivityDraftsOptions) => () => UseActivityDraftsReturn;
/**
 * Alias for createUseActivityDrafts
 */
export declare const createActivityDraftsHook: (apiClient: BaseApiClient, options?: UseActivityDraftsOptions) => () => UseActivityDraftsReturn;
//# sourceMappingURL=useActivityDrafts.d.ts.map