/**
 * Configuration System Types
 *
 * Defines all configuration interfaces and types for the Stoneforge system.
 * Supports file-based configuration, environment variables, and CLI overrides
 * with a clear precedence hierarchy.
 */
/**
 * Valid conflict strategy values
 */
export const VALID_CONFLICT_STRATEGIES = [
    'last_write_wins',
    'local_wins',
    'remote_wins',
    'manual',
];
/**
 * Valid sync direction values
 */
export const VALID_SYNC_DIRECTIONS = [
    'push',
    'pull',
    'bidirectional',
];
/**
 * Valid auto-link provider names
 */
export const VALID_AUTO_LINK_PROVIDERS = [
    'github',
    'linear',
    'notion',
    'folder',
];
// ============================================================================
// Configuration Source Tracking
// ============================================================================
/**
 * Source of a configuration value
 */
export const ConfigSource = {
    /** Built-in default value */
    DEFAULT: 'default',
    /** From config file */
    FILE: 'file',
    /** From environment variable */
    ENVIRONMENT: 'environment',
    /** From CLI flag */
    CLI: 'cli',
};
// ============================================================================
// Environment Variable Mapping
// ============================================================================
/**
 * Environment variable names for configuration
 */
export const EnvVars = {
    /** Default actor name */
    ACTOR: 'STONEFORGE_ACTOR',
    /** Base branch for merge targets */
    BASE_BRANCH: 'STONEFORGE_BASE_BRANCH',
    /** Database file path */
    DATABASE: 'STONEFORGE_DB',
    /** Config file path override */
    CONFIG: 'STONEFORGE_CONFIG',
    /** JSON output mode */
    JSON: 'STONEFORGE_JSON',
    /** Verbose/debug mode */
    VERBOSE: 'STONEFORGE_VERBOSE',
    /** Auto-export on mutations */
    SYNC_AUTO_EXPORT: 'STONEFORGE_SYNC_AUTO_EXPORT',
    /** Identity mode */
    IDENTITY_MODE: 'STONEFORGE_IDENTITY_MODE',
};
// ============================================================================
// Configuration Path Types
// ============================================================================
/**
 * Valid configuration paths (as const array for runtime validation)
 */
export const VALID_CONFIG_PATHS = [
    'actor',
    'baseBranch',
    'database',
    'sync.autoExport',
    'sync.exportDebounce',
    'sync.elementsFile',
    'sync.dependenciesFile',
    'playbooks.paths',
    'tombstone.ttl',
    'tombstone.minTtl',
    'identity.mode',
    'identity.timeTolerance',
    'plugins.packages',
    'externalSync.enabled',
    'externalSync.pollInterval',
    'externalSync.conflictStrategy',
    'externalSync.defaultDirection',
    'externalSync.autoLink',
    'externalSync.autoLinkProvider',
    'externalSync.autoLinkDocumentProvider',
];
/**
 * Type guard to check if a string is a valid ConfigPath
 */
export function isValidConfigPath(value) {
    return VALID_CONFIG_PATHS.includes(value);
}
//# sourceMappingURL=types.js.map