import type { HttpMethod } from '@scalar/helpers/http/http-methods';
import type { Tab } from '@scalar/workspace-store/schemas/extensions/workspace';
import type { GetEntryByLocation } from '../../v2/features/app/app-state.js';
/**
 * Returns display details for a tab in the API client UI.
 * Determines the title and icon to use based on workspace, document, path, and method.
 *
 * - If no workspace is provided, returns { title: 'Untitled Tab' }.
 * - If document is present, attempts to fetch an entry using getEntryByLocation, and returns:
 *    - { title: entry.title, icon: 'document' } for document entry types,
 *    - { title: entry.title, icon: 'request' } for all other types,
 *    - If no entry found, returns { title: 'Untitled Tab' }.
 * - If neither document nor entry is available, returns { title: 'Workspace' }.
 *
 * Example:
 * ```
 * const result = getTabDetails({
 *   workspace: "main",
 *   document: "doc1",
 *   path: "/users",
 *   method: "get",
 *   getEntryByLocation: ({ document, path, method }) => {
 *     // Mock lookup:
 *     if (document === "doc1" && path === "/users") {
 *       return { type: "document", title: "Users" }
 *     }
 *     return null
 *   }
 * })
 * // result: { title: "Users", icon: "document" }
 * ```
 */
export declare const getTabDetails: ({ workspace, document, path, method, getEntryByLocation, }: {
    workspace?: string;
    document?: string;
    path?: string;
    method?: HttpMethod;
    getEntryByLocation: GetEntryByLocation;
}) => {
    title: string;
    icon?: Tab["icon"];
};
//# sourceMappingURL=get-tab-details.d.ts.map