35 lines
949 B
TypeScript
35 lines
949 B
TypeScript
import type { HousekeepingDomainId } from "../../migration/types";
|
|
import type {
|
|
CapabilityRequirement,
|
|
HousekeepingCapabilityContext,
|
|
} from "./capability";
|
|
import type { CanonicalHousekeepingHref } from "./domain";
|
|
import type { HousekeepingResult } from "./result";
|
|
|
|
export interface HousekeepingSearchInput {
|
|
term: string;
|
|
limit: number;
|
|
}
|
|
|
|
export type HousekeepingSearchResultType = "navigation" | "entity" | "command";
|
|
|
|
export interface HousekeepingSearchResult {
|
|
id: string;
|
|
domain: HousekeepingDomainId;
|
|
type: HousekeepingSearchResultType;
|
|
title: string;
|
|
description?: string;
|
|
href: CanonicalHousekeepingHref;
|
|
capability: CapabilityRequirement;
|
|
}
|
|
|
|
export interface HousekeepingSearchProvider {
|
|
id: string;
|
|
owner: HousekeepingDomainId;
|
|
capability: CapabilityRequirement;
|
|
search(
|
|
context: HousekeepingCapabilityContext,
|
|
input: HousekeepingSearchInput,
|
|
): Promise<HousekeepingResult<readonly HousekeepingSearchResult[]>>;
|
|
}
|