import { PrismaService } from "../../../core/database/prisma/prisma.service";
import { ContainerHostService } from './container-host.service';
import { InternalAppEventsService } from './events.service';
export interface GiteaPushPayload {
    ref?: string;
    after?: string;
    repository?: {
        full_name?: string;
        clone_url?: string;
    };
    pusher?: {
        username?: string;
        email?: string;
    };
}
export type WebhookOutcome = {
    ok: true;
    action: 'deploy_queued';
    deploymentId?: string;
    appId: string;
} | {
    ok: true;
    action: 'ignored';
    reason: string;
} | {
    ok: false;
    httpStatus: number;
    code: string;
    message: string;
};
export declare class GiteaWebhookService {
    private readonly prisma;
    private readonly containerHost;
    private readonly eventsSvc;
    private readonly logger;
    private readonly secret;
    constructor(prisma: PrismaService, containerHost: ContainerHostService, eventsSvc: InternalAppEventsService);
    verifySignature(rawBody: string, signatureHeader: string | undefined): boolean;
    handlePush(payload: GiteaPushPayload): Promise<WebhookOutcome>;
    private findAppByRepoName;
}
