/******************************************************************************** * Copyright (c) 2026 Contributors to the Eclipse Foundation * * See the NOTICE file(s) distributed with this work for additional * information regarding copyright ownership. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License 2.0 which is available at * https://www.eclipse.org/legal/epl-2.0 * * SPDX-License-Identifier: EPL-2.0 ********************************************************************************/ import { FileDecisionType } from '../../context/scan-admin'; interface UseFileListTabOptions { tabIndex: 3 | 4; decisionType: FileDecisionType; tabName: string; } /** * Hook for the Allowed Files (tab 3) and Blocked Files (tab 4) tabs. * Provides file list data, selection management, and file actions. */ export declare const useFileListTab: ({ tabIndex, decisionType, tabName }: UseFileListTabOptions) => { tabIndex: 3 | 4; tabName: string; decisionType: string; files: import("../../context/scan-admin").FileDecision[]; isLoading: boolean; fileCount: number; lastRefreshed: Date | null; autoRefresh: boolean; onAutoRefreshChange: (enabled: boolean) => void; search: { publisherQuery: string; namespaceQuery: string; nameQuery: string; setPublisherQuery: (query: string) => void; setNamespaceQuery: (query: string) => void; setNameQuery: (query: string) => void; handlePublisherChange: (event: import("react").ChangeEvent) => void; handleNamespaceChange: (event: import("react").ChangeEvent) => void; handleNameChange: (event: import("react").ChangeEvent) => void; clearSearch: () => void; hasActiveSearch: boolean; }; pagination: { currentPage: number; pageSize: number; totalPages: number; totalItems: number; isLoading: boolean; goToPage: (page: number) => void; goToNextPage: () => void; goToPreviousPage: () => void; goToFirstPage: () => void; goToLastPage: () => void; hasNextPage: boolean; hasPreviousPage: boolean; isFirstPage: boolean; isLastPage: boolean; startItem: number; endItem: number; }; selection: { checked: Set; selectedCount: number; selectedFiles: import("../../context/scan-admin").FileDecision[]; }; setFilesChecked: (fileIds: Set) => void; selectAll: () => void; deselectAll: () => void; isAllSelected: boolean; isSomeSelected: boolean; fileActions: { openAllowDialog: () => void; openBlockDialog: () => void; openDeleteDialog: () => void; canPerformAction: boolean; }; }; /** * Hook specifically for the Allow List tab (tab index 3). */ export declare const useAllowListTab: () => { tabIndex: 3 | 4; tabName: string; decisionType: string; files: import("../../context/scan-admin").FileDecision[]; isLoading: boolean; fileCount: number; lastRefreshed: Date | null; autoRefresh: boolean; onAutoRefreshChange: (enabled: boolean) => void; search: { publisherQuery: string; namespaceQuery: string; nameQuery: string; setPublisherQuery: (query: string) => void; setNamespaceQuery: (query: string) => void; setNameQuery: (query: string) => void; handlePublisherChange: (event: import("react").ChangeEvent) => void; handleNamespaceChange: (event: import("react").ChangeEvent) => void; handleNameChange: (event: import("react").ChangeEvent) => void; clearSearch: () => void; hasActiveSearch: boolean; }; pagination: { currentPage: number; pageSize: number; totalPages: number; totalItems: number; isLoading: boolean; goToPage: (page: number) => void; goToNextPage: () => void; goToPreviousPage: () => void; goToFirstPage: () => void; goToLastPage: () => void; hasNextPage: boolean; hasPreviousPage: boolean; isFirstPage: boolean; isLastPage: boolean; startItem: number; endItem: number; }; selection: { checked: Set; selectedCount: number; selectedFiles: import("../../context/scan-admin").FileDecision[]; }; setFilesChecked: (fileIds: Set) => void; selectAll: () => void; deselectAll: () => void; isAllSelected: boolean; isSomeSelected: boolean; fileActions: { openAllowDialog: () => void; openBlockDialog: () => void; openDeleteDialog: () => void; canPerformAction: boolean; }; }; /** * Hook specifically for the Block List tab (tab index 4). */ export declare const useBlockListTab: () => { tabIndex: 3 | 4; tabName: string; decisionType: string; files: import("../../context/scan-admin").FileDecision[]; isLoading: boolean; fileCount: number; lastRefreshed: Date | null; autoRefresh: boolean; onAutoRefreshChange: (enabled: boolean) => void; search: { publisherQuery: string; namespaceQuery: string; nameQuery: string; setPublisherQuery: (query: string) => void; setNamespaceQuery: (query: string) => void; setNameQuery: (query: string) => void; handlePublisherChange: (event: import("react").ChangeEvent) => void; handleNamespaceChange: (event: import("react").ChangeEvent) => void; handleNameChange: (event: import("react").ChangeEvent) => void; clearSearch: () => void; hasActiveSearch: boolean; }; pagination: { currentPage: number; pageSize: number; totalPages: number; totalItems: number; isLoading: boolean; goToPage: (page: number) => void; goToNextPage: () => void; goToPreviousPage: () => void; goToFirstPage: () => void; goToLastPage: () => void; hasNextPage: boolean; hasPreviousPage: boolean; isFirstPage: boolean; isLastPage: boolean; startItem: number; endItem: number; }; selection: { checked: Set; selectedCount: number; selectedFiles: import("../../context/scan-admin").FileDecision[]; }; setFilesChecked: (fileIds: Set) => void; selectAll: () => void; deselectAll: () => void; isAllSelected: boolean; isSomeSelected: boolean; fileActions: { openAllowDialog: () => void; openBlockDialog: () => void; openDeleteDialog: () => void; canPerformAction: boolean; }; }; export type UseFileListTabReturn = ReturnType; export type UseAllowListTabReturn = ReturnType; export type UseBlockListTabReturn = ReturnType; export {}; //# sourceMappingURL=use-file-list-tab.d.ts.map