/** * Arkme-owned child-slot contract: one additive directory entry inside the * permanent Arkme workspace. Declaring is claiming — this entry is the only * registrant allowed to render the key. Consumer plugins (e.g. the World * surface) register a row into `arkme.directory.entry` without touching the * Arkme surface code. */ import type { PropsRenderSlots, PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots'; import type { ArkmeSourceItem } from '../types.js'; import type { ReactNode } from 'react'; declare module '@deepseek-ai/dsh-client-ui-slots' { interface SlotMap { 'arkme.topic.actions': { kind: 'single'; scope: 'root'; owner: ArkmeTopicActionsOwnerProps; }; 'arkme.send-to-self.entry': { kind: 'single'; scope: 'root'; owner: ArkmeSendToSelfEntryOwnerProps; }; /** Additive directory rows rendered inside the permanent Arkme directory. */ 'arkme.directory.entry': { kind: 'list'; scope: 'root'; owner: ArkmeDirectoryEntryOwnerProps; }; } } /** Semantic content accepted by the Arkme-owned directory-row renderer. */ export interface ArkmeDirectoryRowProps { avatar: ReactNode; title: string; preview: string; selected: boolean; disabled?: boolean; ariaLabel?: string; onClick(): void; } /** Owner share of a directory entry: column state plus owner-rendered chrome. */ export interface ArkmeDirectoryEntryOwnerProps { /** Whether the sidebar renders wide content (false = 56px rail). */ wide: boolean; /** Whether the Arkme account is authenticated. */ authenticated: boolean; /** Consumer entry currently selected by the Arkme directory owner. */ activeEntryId?: string; /** Select one consumer entry, or clear it before native navigation. */ activateEntry(entryId?: string): void; /** Render one row with Arkme-owned structure, tokens and accessibility. */ renderRow(props: ArkmeDirectoryRowProps): ReactNode; } /** Full props of a component registered into `arkme.directory.entry`. */ export type ArkmeDirectoryEntryComponentProps = PropsRuntime<'arkme.directory.entry'> & PropsRenderSlots<'arkme.directory.entry'>; /** Original entry chrome and existing second-column navigation, owned by Arkme. */ export interface ArkmeSendToSelfEntryOwnerProps { renderEntry(onClick?: () => void): ReactNode; openTopicDirectory(): void; } export interface ArkmeTopicActionsOwnerProps { source: Readonly; renderDefault(): ReactNode; isCurrent(): boolean; onCreateChild(): void; onChanged(renamed?: ArkmeSourceItem): void; } //# sourceMappingURL=slots-contract.d.ts.map