type RequireAtLeastOne = Omit & { [K in Keys]-?: Required> & Partial>; }[Keys]; export interface DashSearchPayload { /** * Search query to send to Dash. * * @example 'string' */ query: string; } export interface DashSearchDocsetsPayload extends DashSearchPayload { /** * Dash docset keyword or Search Profile keyword trigger. * * @example 'php' */ keyword: string; } export type DashPluginSearchPayload = RequireAtLeastOne<{ /** * Comma-separated Dash docset keywords. * * @example 'python,django' */ keys?: string; /** * Search query to send to Dash. Dash's plugin docs require this value to be percent-encoded. * * @example 'string' */ query?: string; }>; export interface DashFeedPayload { /** * Docset feed URL. * * @example 'http://kapeli.com/feeds/NodeJS.xml' */ url: string; } export interface DashInstallDocsetPayload { /** * Name of the repo to install from, as seen in Dash Settings > Downloads. * * @example 'Ruby Docsets' */ repoName: string; /** * Name of the docset entry to install, as shown in repo search results. * * @example 'cheatset' */ entryName: string; /** * Optional version number to install when the entry supports specific versions. * * @example '1.3.3' */ version?: string; } export declare function dashSearchQuery(query: string): string; export declare function dashKeywordSearchQuery(payload: DashSearchDocsetsPayload): string; export declare function dashPluginSearchUrl(payload: DashPluginSearchPayload): string; export declare function dashFeedUrl(url: string): string; export declare function dashInstallUrl(payload: DashInstallDocsetPayload): string; export {};