export interface GitHubWebhookEvent {
    /** GitHub event type from X-GitHub-Event header (e.g. 'pull_request', 'issues') */
    type: string;
    /** Action field from the payload (e.g. 'opened', 'synchronize') */
    action: string;
    /** Raw webhook payload */
    payload: Record<string, unknown>;
}
/**
 * GitHubIntegration — HMAC verification, event parsing, prompt generation,
 * and outbound GitHub API calls (comments, reviews).
 */
export declare class GitHubIntegration {
    /**
     * Verify an HMAC-SHA256 webhook signature.
     * GitHub sends: X-Hub-Signature-256: sha256=<hex>
     */
    static verifySignature(payload: string, signature: string, secret: string): boolean;
    /**
     * Parse a GitHub webhook payload into a structured event.
     * The event type comes from the X-GitHub-Event header.
     */
    static parseEvent(headers: Headers, body: Record<string, unknown>): GitHubWebhookEvent;
    /**
     * Convert a GitHub webhook event into an agent prompt.
     * Returns null if the event does not warrant agent action.
     */
    static eventToPrompt(event: GitHubWebhookEvent): string | null;
    /**
     * Post a comment on a pull request.
     */
    postPRComment(owner: string, repo: string, prNumber: number, body: string, token: string): Promise<void>;
    /**
     * Post a review on a pull request.
     */
    postPRReview(owner: string, repo: string, prNumber: number, body: string, event: 'APPROVE' | 'REQUEST_CHANGES' | 'COMMENT', token: string): Promise<void>;
    /**
     * Post a comment on an issue.
     */
    postIssueComment(owner: string, repo: string, issueNumber: number, body: string, token: string): Promise<void>;
    private githubPost;
}
//# sourceMappingURL=github.d.ts.map