import { type Ref } from 'vue';
import { type IntegrationSyncLogEntry, type SyncLogQueryParams, type SyncLogStatsEntry } from '@/api/integration-sync-log';
export declare function useIntegrationSyncLog(provider: string): {
    logs: Ref<IntegrationSyncLogEntry[], IntegrationSyncLogEntry[]>;
    stats: Ref<SyncLogStatsEntry[], SyncLogStatsEntry[]>;
    total: Ref<number, number>;
    page: Ref<number, number>;
    limit: Ref<number, number>;
    isLoading: Ref<boolean, boolean>;
    filters: Ref<{
        provider?: string | undefined;
        internalId?: string | undefined;
        externalId?: string | undefined;
        queueName?: string | undefined;
        jobId?: string | undefined;
        messageSearch?: string | undefined;
        metadataRecordType?: string | undefined;
        startDate?: string | undefined;
        endDate?: string | undefined;
        page?: number | undefined;
        limit?: number | undefined;
    }, SyncLogQueryParams | {
        provider?: string | undefined;
        internalId?: string | undefined;
        externalId?: string | undefined;
        queueName?: string | undefined;
        jobId?: string | undefined;
        messageSearch?: string | undefined;
        metadataRecordType?: string | undefined;
        startDate?: string | undefined;
        endDate?: string | undefined;
        page?: number | undefined;
        limit?: number | undefined;
    }>;
    fetchLogs: () => Promise<void>;
    fetchStats: () => Promise<void>;
    retry: (logId: string) => Promise<{
        success: boolean;
        message: string;
    }>;
    updateFilters: (newFilters: Partial<SyncLogQueryParams>) => void;
    changePage: (newPage: number) => void;
    startPolling: (intervalMs?: number) => void;
    stopPolling: () => void;
};
