/**
 * GitHub Field Map Configuration
 *
 * Defines how Stoneforge task fields map to GitHub issue fields.
 * Used by the GitHubTaskAdapter and the shared task sync adapter utilities.
 *
 * Key mappings:
 * - Priority (1-5) -> labels with 'priority:' prefix
 * - TaskType (bug/feature/task/chore) -> labels with 'type:' prefix
 * - Status -> GitHub issue state ('open' or 'closed')
 * - Tags -> labels (user-managed, no prefix)
 * - Sync-managed labels use the 'sf:' prefix
 */
import type { TaskStatus, Priority, TaskTypeValue } from '@stoneforge/core';
import type { TaskSyncFieldMapConfig } from '../../adapters/task-sync-adapter.js';
/**
 * Maps Stoneforge priority values (1-5) to GitHub label names.
 * These labels are prefixed with 'sf:' when pushed to GitHub to
 * distinguish sync-managed labels from user-created labels.
 */
export declare const GITHUB_PRIORITY_LABELS: Record<Priority, string>;
/**
 * Maps Stoneforge task type values to GitHub label names.
 * These labels are prefixed with 'sf:' when pushed to GitHub.
 */
export declare const GITHUB_TASK_TYPE_LABELS: Record<TaskTypeValue, string>;
/**
 * Prefix for Stoneforge-managed labels on GitHub issues.
 * Labels with this prefix are created and managed by the sync system.
 * User labels without this prefix are preserved during sync.
 */
export declare const GITHUB_SYNC_LABEL_PREFIX = "sf:";
/**
 * Maps Stoneforge TaskStatus values to GitHub label names.
 * These labels are prefixed with 'sf:' when pushed to GitHub to
 * provide granular status visibility beyond GitHub's binary open/closed state.
 */
export declare const GITHUB_STATUS_LABELS: Record<TaskStatus, string>;
/**
 * Maps Stoneforge TaskStatus to GitHub issue state.
 *
 * GitHub only supports two issue states: 'open' and 'closed'.
 * Most Stoneforge statuses map to 'open' since GitHub can't
 * distinguish between open, in_progress, review, blocked, etc.
 *
 * Mapping:
 * - open, in_progress, review, blocked, deferred, backlog -> 'open'
 * - closed, tombstone -> 'closed'
 */
export declare function statusToGitHubState(status: TaskStatus): 'open' | 'closed';
/**
 * Maps GitHub issue state + labels back to Stoneforge TaskStatus.
 *
 * Uses sf:status:* labels for granular status inference when available.
 * If a status label is found, it takes precedence over the basic
 * open/closed state mapping. Falls back to the simple state mapping
 * when no status label is present.
 *
 * Mapping with labels:
 * - 'sf:status:in-progress' → 'in_progress'
 * - 'sf:status:blocked' → 'blocked'
 * - etc.
 *
 * Fallback mapping (no status label):
 * - 'open' → 'open'
 * - 'closed' → 'closed'
 */
export declare function gitHubStateToStatus(state: 'open' | 'closed', labels: string[]): TaskStatus;
/**
 * Complete GitHub-specific field mapping configuration.
 *
 * Used by the shared task sync adapter utilities to convert between
 * Stoneforge tasks and GitHub issues (in both push and pull directions).
 */
export declare const GITHUB_FIELD_MAP_CONFIG: TaskSyncFieldMapConfig;
//# sourceMappingURL=github-field-map.d.ts.map