/**
 * This file is part of the NocoBase (R) project.
 * Copyright (c) 2020-2024 NocoBase Co., Ltd.
 * Authors: NocoBase Team.
 *
 * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
 * For more information, please refer to: https://www.nocobase.com/agreement.
 */
import React from 'react';
export interface WorkflowTaskStatsItem {
    workflowKey: string;
    title: string;
    stats: {
        pending: number;
        all: number;
    };
}
export interface WorkflowTaskNavigationType {
    count: number;
    key: string;
    title: React.ReactNode;
}
interface WorkflowTaskStatsListParams {
    page: number;
    pageSize: number;
    search?: string;
    type: string;
}
export type LoadWorkflowTaskStats = (params: WorkflowTaskStatsListParams) => Promise<unknown>;
export interface WorkflowTaskFilterContextValue {
    selectedWorkflow: WorkflowTaskStatsItem | null;
    selectWorkflow: (workflow: WorkflowTaskStatsItem | null) => void;
    workflows: WorkflowTaskStatsItem[];
    loading: boolean;
    loadingMore: boolean;
    hasNext: boolean;
    error: boolean;
    search: string;
    setSearch: (search: string) => void;
    loadMore: () => void;
    reload: () => void;
}
export declare function useWorkflowTaskFilterContext(): WorkflowTaskFilterContextValue;
export declare function WorkflowTaskFilterProvider(props: React.PropsWithChildren<{
    eventBus?: EventTarget;
    loadWorkflowTaskStats: LoadWorkflowTaskStats;
    typeKey?: string;
}>): React.JSX.Element;
export declare function WorkflowTaskNavigation(props: {
    currentTypeKey?: string;
    mobile: boolean;
    onTaskTypeSelect: (typeKey: string) => void;
    taskTypes: WorkflowTaskNavigationType[];
    t: (key: string) => string;
}): React.JSX.Element;
export {};
