export type SignetSourceKind = "obsidian" | (string & {}); export type SignetSourceMode = "read-only"; export type SignetSourceProviderSettings = Readonly>; export interface SignetSourceEntry { readonly id: string; readonly kind: SignetSourceKind; readonly name: string; readonly root: string; readonly enabled: boolean; readonly mode: SignetSourceMode; readonly createdAt: string; readonly updatedAt: string; readonly lastIndexedAt?: string; readonly excludeGlobs?: readonly string[]; readonly providerSettings?: SignetSourceProviderSettings; } export declare const DEFAULT_OBSIDIAN_EXCLUDE_GLOBS: readonly ["**/.obsidian/**", "**/.trash/**", "**/.hermes/**", "**/.*/**", "**/.*"]; export interface SignetSourcesConfig { readonly version: 1; readonly sources: readonly SignetSourceEntry[]; } export interface AddObsidianSourceInput { readonly root: string; readonly name?: string; readonly excludeGlobs?: readonly string[]; readonly now?: string; } export type DiscordSourceSyncMode = "rest" | "gateway-tail" | "desktop-cache"; export type GitHubSourceResourceType = "issues" | "pulls" | "discussions" | "docs"; export type GitHubSourceState = "open" | "closed" | "all"; export interface DiscordSourceSettings { readonly guildIds: readonly string[]; readonly tokenRef: string; readonly desktopCachePath?: string; readonly desktopCacheFullScan: boolean; readonly channelFilter?: readonly string[]; readonly maxMessagesPerChannel: number; readonly includeThreads: boolean; readonly includeArchivedThreads: boolean; readonly includePrivateArchivedThreads: boolean; readonly includeMembers: boolean; readonly includeAttachments: boolean; readonly includeAttachmentText: boolean; readonly maxAttachmentTextBytes: number; readonly includeEmbeds: boolean; readonly includePolls: boolean; readonly includeThreadMembers: boolean; readonly since?: string; readonly syncMode: DiscordSourceSyncMode; } export interface AddDiscordSourceInput { readonly guildIds?: readonly string[]; readonly tokenRef?: string; readonly desktopCachePath?: string; readonly desktopCacheFullScan?: boolean; readonly name?: string; readonly channelFilter?: readonly string[]; readonly maxMessagesPerChannel?: number; readonly includeThreads?: boolean; readonly includeArchivedThreads?: boolean; readonly includePrivateArchivedThreads?: boolean; readonly includeMembers?: boolean; readonly includeAttachments?: boolean; readonly includeAttachmentText?: boolean; readonly maxAttachmentTextBytes?: number; readonly includeEmbeds?: boolean; readonly includePolls?: boolean; readonly includeThreadMembers?: boolean; readonly since?: string; readonly syncMode?: DiscordSourceSyncMode; readonly now?: string; } export interface GitHubSourceSettings { readonly repos: readonly string[]; readonly tokenRef?: string; readonly resourceTypes: readonly GitHubSourceResourceType[]; readonly state: GitHubSourceState; readonly includeComments: boolean; readonly labels?: readonly string[]; readonly docPaths: readonly string[]; readonly maxItemsPerRepo: number; } export interface AddGitHubSourceInput { readonly repos: readonly string[]; readonly tokenRef?: string; readonly name?: string; readonly resourceTypes?: readonly GitHubSourceResourceType[]; readonly state?: GitHubSourceState; readonly includeComments?: boolean; readonly labels?: readonly string[]; readonly docPaths?: readonly string[]; readonly maxItemsPerRepo?: number; readonly now?: string; } export type AddSourceResult = { readonly ok: true; readonly source: SignetSourceEntry; readonly created: boolean; } | { readonly ok: false; readonly error: string; }; export type RemoveSourceResult = { readonly ok: true; readonly source: SignetSourceEntry; } | { readonly ok: false; readonly error: string; }; export declare const DEFAULT_DISCORD_MAX_MESSAGES_PER_CHANNEL = 1000; export declare const MAX_DISCORD_MAX_MESSAGES_PER_CHANNEL = 10000; export declare const DEFAULT_DISCORD_MAX_ATTACHMENT_TEXT_BYTES = 262144; export declare const MAX_DISCORD_MAX_ATTACHMENT_TEXT_BYTES = 1048576; export declare const DEFAULT_DISCORD_DESKTOP_CACHE_PATH: string; export declare const DEFAULT_GITHUB_RESOURCE_TYPES: readonly ["issues", "pulls", "discussions", "docs"]; export declare const DEFAULT_GITHUB_RESOURCE_TYPES_NO_TOKEN: readonly ["issues", "pulls", "docs"]; export declare const DEFAULT_GITHUB_DOC_PATHS: readonly ["README.md", "CHANGELOG.md"]; export declare const DEFAULT_GITHUB_MAX_ITEMS_PER_REPO = 500; export declare const MAX_GITHUB_MAX_ITEMS_PER_REPO = 10000; export declare function getAgentsDir(): string; export declare function getSourcesConfigPath(agentsDir?: string): string; export declare function loadSourcesConfig(agentsDir?: string): SignetSourcesConfig; export declare function saveSourcesConfig(config: SignetSourcesConfig, agentsDir?: string): void; export declare function addObsidianSource(input: AddObsidianSourceInput, agentsDir?: string): AddSourceResult; export declare function addDiscordSource(input: AddDiscordSourceInput, agentsDir?: string): AddSourceResult; export declare function addGitHubSource(input: AddGitHubSourceInput, agentsDir?: string): AddSourceResult; export declare function parseDiscordSettings(raw?: SignetSourceProviderSettings): DiscordSourceSettings; export declare function parseGitHubSettings(raw?: SignetSourceProviderSettings): GitHubSourceSettings; export declare function markSourceIndexed(sourceId: string, indexedAt?: string, agentsDir?: string): void; export declare function removeSource(sourceId: string, agentsDir?: string): RemoveSourceResult; //# sourceMappingURL=sources-config.d.ts.map