import type { PrincipalKey } from '../auth'; import type { NodeQueryHit, NodeQueryResponse, Source } from './repoConnection'; import type { NodeQueryParams } from './query'; // Multi repo connect requires principles to be present for sources export type SourceWithPrincipals = Omit & { principals: Array; }; export interface MultiRepoConnectParams { sources: Array; } export interface MultiRepoNodeQueryHit extends NodeQueryHit { readonly repoId: string; readonly branch: string; } export type MultiRepoNodeQueryResponse< AggregationKeys extends undefined|string = undefined > = Omit< NodeQueryResponse, "hits" > & { hits: ReadonlyArray; }; export interface MultiRepoConnection { query< AggregationKeys extends undefined|string = undefined >( params: NodeQueryParams ): MultiRepoNodeQueryResponse; }