import * as React from 'react';
import { HostsTableActions, ActionCheck } from '../../../common';
import { AgentClusterInstallK8sResource, AgentK8sResource, InfraEnvK8sResource } from '../../types';
import { ActionsResolver } from '../../../common/components/hosts/AITable';
import { AgentTableActions } from '../ClusterDeployment/types';
import { BareMetalHostK8sResource } from '../../types/k8s/bare-metal-host';
import { TFunction } from 'i18next';
import { Host } from '@openshift-assisted/types/assisted-installer-service';
import { HostStatus } from '../../../common/components/hosts/types';
export declare const canEditBMH: (bmh: BareMetalHostK8sResource, t: TFunction) => ActionCheck;
export declare const canEditAgent: (agent: AgentK8sResource, agentStatuses: HostStatus<string>, t: TFunction) => ActionCheck;
export declare const canChangeHostname: (agents: AgentK8sResource[], agentStatuses: HostStatus<string>, bareMetalHosts: BareMetalHostK8sResource[], t: TFunction) => ((h: Host) => ActionCheck);
export declare const canUnbindAgent: (agentClusterInstalls: AgentClusterInstallK8sResource[] | undefined, agent: AgentK8sResource, t: TFunction) => ActionCheck;
type AgentsTableResources = {
    agents: AgentK8sResource[];
    bmhs?: BareMetalHostK8sResource[];
    infraEnv?: InfraEnvK8sResource;
    agentClusterInstalls?: AgentClusterInstallK8sResource[];
};
export declare const useAgentsTable: ({ agents, bmhs, infraEnv, agentClusterInstalls }: AgentsTableResources, tableActions?: Partial<AgentTableActions>) => [Host[], HostsTableActions, ActionsResolver<Host>];
export declare const filterHosts: (hosts: Host[], agents: AgentK8sResource[], agentStatuses: HostStatus<string>, bareMetalHosts: BareMetalHostK8sResource[], hostnameFilter: string | undefined, statusFilter: string[], labelFilter: string[]) => {
    hosts: Host[];
    sorted: boolean;
};
type UseAgentsFilterArgs = {
    agents: AgentK8sResource[];
    agentStatuses: HostStatus<string>;
    bmhs: BareMetalHostK8sResource[];
    bmhStatuses: HostStatus<string>;
    hosts: Host[];
};
export type StatusCount = Record<string, number>;
export declare const useAgentsFilter: ({ agents, agentStatuses, bmhs, bmhStatuses, hosts, }: UseAgentsFilterArgs) => {
    statusCount: StatusCount;
    hostnameFilter: string | undefined;
    setHostnameFilter: React.Dispatch<React.SetStateAction<string | undefined>>;
    statusFilter: string[];
    setStatusFilter: React.Dispatch<React.SetStateAction<string[]>>;
    hostLabels: import("lodash").Dictionary<number>;
    labelFilter: string[];
    setLabelFilter: React.Dispatch<React.SetStateAction<string[]>>;
    filteredHosts: Host[];
    sorted: boolean;
};
export {};
//# sourceMappingURL=tableUtils.d.ts.map