/**
 * GitHubProjectAdapter - Sync projects to GitHub labels
 *
 * Subscribes to project events and creates/updates/archives
 * project labels in GitHub repositories.
 *
 * Label format: project:{project-id}
 */
import { Logger } from '../../../utils/logger.js';
import { Project } from '../types/project-types.js';
import { ProjectRegistry } from '../project-registry.js';
export interface GitHubProjectAdapterOptions {
    logger?: Logger;
    /** GitHub repository owner (optional for discovery-only mode) */
    owner?: string;
    /** GitHub repository name (optional for discovery-only mode) */
    repo?: string;
    token?: string;
}
export declare class GitHubProjectAdapter {
    private logger;
    private owner;
    private repo;
    private token?;
    private registry?;
    constructor(options: GitHubProjectAdapterOptions);
    /**
     * Subscribe to project events from the registry's event bus
     */
    subscribe(registry: ProjectRegistry): void;
    /**
     * Handle ProjectCreated event - create label in GitHub
     */
    private handleProjectCreated;
    /**
     * Handle ProjectUpdated event - update label in GitHub
     */
    private handleProjectUpdated;
    /**
     * Handle ProjectDeleted event - archive label in GitHub
     */
    private handleProjectDeleted;
    /**
     * Handle ProjectSyncRequested event - force sync to GitHub
     */
    private handleSyncRequested;
    /**
     * Sync a project to GitHub
     */
    private syncProject;
    /**
     * Get label name for a project
     */
    private getLabelName;
    /**
     * Get environment with token
     */
    private getGhEnv;
    /**
     * Check if a label exists
     */
    private labelExists;
    /**
     * Create a label in GitHub
     */
    private createLabel;
    /**
     * Update a label in GitHub
     */
    private updateLabel;
    /**
     * Discover project labels from GitHub
     */
    discoverProjects(): Promise<Partial<Project>[]>;
}
//# sourceMappingURL=github-project-adapter.d.ts.map