import * as React from 'react'; import type { AgPart } from '../types.js'; export type AgSourcePart = Extract; export interface SourceListProps { /** Id of the message the sources belong to. */ messageId: string; /** Sources to list, in citation order. */ sources: readonly AgSourcePart[]; /** Initial open state when uncontrolled. */ defaultOpen?: boolean | undefined; /** Class name merged onto the root element. */ className?: string | undefined; } /** Visible name of a URL source: title, else hostname, else the raw URL. */ export declare function sourceUrlLabel(s: { url: string; title?: string | undefined; }): string; /** Internal (not re-exported from `aura-glass/ai`): Thread/Message render it * once around their parts to scope the registry. */ export declare function SourceScope({ children }: { children?: React.ReactNode; }): React.JSX.Element; /** Hook for Citation: returns `open(anchor, messageId, sourceId) → handled`. */ export declare function useOpenSource(): (anchor: Element, messageId: string, sourceId: string) => boolean; /** * REQ-SURF-124: Base UI Collapsible "{n} sources" (closed when n > 3), list * items addressable as #ag-src-{messageId}-{sourceId}; the panel stays mounted * (hidden) so item ids and `aria-controls` always resolve; non-http(s) URLs * render as text only (javascript:/data: rejected). */ export declare function SourceList({ messageId, sources, defaultOpen, className }: SourceListProps): React.JSX.Element; //# sourceMappingURL=SourceList.d.ts.map