/**
 * Sync Config Writer
 *
 * Writes sync configuration to .specweave/config.json for different trackers.
 * Extracted from issue-tracker/index.ts to reduce file size and improve maintainability.
 *
 * @module cli/helpers/issue-tracker/sync-config-writer
 */
import { Logger } from '../../../utils/logger.js';
import type { IssueTracker, TrackerCredentials, SyncSettings, SyncPermissions } from './types.js';
/**
 * Write sync config to .specweave/config.json
 *
 * This is CRITICAL for hooks to fire! Without this, the post-task-completion hook
 * won't sync to GitHub/Jira/ADO.
 *
 * @param projectPath - Path to project root
 * @param tracker - Issue tracker type (github, jira, ado)
 * @param credentials - Tracker credentials
 * @param syncSettings - Sync settings (status sync, auto-labels)
 * @param syncPermissions - Permission flags for sync operations
 * @param repositoryProfiles - Optional multi-repo profiles (GitHub only)
 * @param monorepoProjects - Optional monorepo projects (GitHub only)
 * @param logger - Optional logger (defaults to consoleLogger)
 */
export declare function writeSyncConfig(projectPath: string, tracker: IssueTracker, credentials: TrackerCredentials, syncSettings: SyncSettings, syncPermissions: SyncPermissions, repositoryProfiles?: any[], monorepoProjects?: string[], logger?: Logger): Promise<void>;
/**
 * Deduplicate an array preserving order (first occurrence wins)
 * Works for both primitive arrays (strings) and object arrays (by key)
 *
 * Exported for use in other modules (e.g., index.ts writeSyncConfigHelper)
 */
export declare function deduplicateArray<T>(arr: T[] | undefined, keyFn?: (item: T) => string): T[];
//# sourceMappingURL=sync-config-writer.d.ts.map