import { Description as FunctionDescription } from "./Description" export interface Detail { description?: FunctionDescription definition: string arguments: string[] } export namespace Detail { export function is(value: any | Detail): value is Detail { return ( typeof value == "object" && value != null && (value.description == undefined || FunctionDescription.is(value.description)) && typeof value.definition == "string" && Array.isArray(value.arguments) && value.arguments.every((v: any) => typeof v == "string") ) } export type Description = FunctionDescription export namespace Descripton { export const is = FunctionDescription.is } }