/** Route kinds aligned with ADR-github-native-invocation.md slash commands. */
export declare const GITHUB_INVOCATION_ROUTE_KINDS: readonly ["plan", "implement", "review", "fix-review", "none"];
export type GithubInvocationRouteKind = (typeof GITHUB_INVOCATION_ROUTE_KINDS)[number];
/** Verify GitHub `X-Hub-Signature-256` (HMAC-SHA256 hex digest of raw body). */
export declare function verifyGithubWebhookSignatureSha256(rawBody: Buffer, signatureHeader: string | undefined, secret: string): boolean;
export declare function extractTaskIdsFromText(text: string): string[];
export declare function parseCannonSlashCommand(body: string): {
    routeKind: GithubInvocationRouteKind;
    remainder: string;
} | null;
export declare function getRepositoryFullName(payload: Record<string, unknown>): string | null;
export declare function getGithubDeliveryMeta(headers: Record<string, string | undefined>, payload: Record<string, unknown>): {
    deliveryId: string;
    eventName: string;
};
export declare function resolveRouteKind(args: {
    eventName: string;
    commentBody: string;
    eventPlaybookMap: Record<string, string>;
}): GithubInvocationRouteKind | null;
export declare function getIssueCommentBody(payload: Record<string, unknown>): string;
/** Text used for slash parsing: issue comments, PR review bodies, or review comment bodies. */
export declare function getInvocationCommentBody(payload: Record<string, unknown>, eventName: string): string;
export declare function isRepositoryAllowed(fullName: string | null, allowedRepositories: string[]): boolean;
export type GithubInvocationAuditRecord = {
    schemaVersion: 1;
    githubDeliveryId: string;
    githubEvent: string;
    repositoryFullName: string | null;
    routeKind: GithubInvocationRouteKind | "unresolved";
    decision: "invoked" | "dry-run" | "policy-denied" | "repo-denied" | "signature-invalid" | "disabled" | "debounced" | "none-route" | "parse-error";
    taskIdsReferenced: string[];
    workspaceKitCommand?: string;
    /** Never include secrets or policy payloads. */
    detail?: string;
};
export declare function buildAuditRecord(partial: Omit<GithubInvocationAuditRecord, "schemaVersion">): GithubInvocationAuditRecord;
