/**
 * Universal-git changed-files fetcher.
 *
 * Implements the `ChangedFilesFetcher` interface from `@kici-dev/engine` for
 * universal-git sources. Unlike the GitHub fetcher, this implementation does
 * not make REST API calls — every supported forge (Forgejo, Gitea, Gogs,
 * GitLab repo webhook, plain GitHub repo webhook) already includes the full
 * `commits[].{added,modified,removed}` arrays in the push payload, so we
 * extract them via JSONPath from the already-delivered webhook body.
 *
 * For PR events we return an empty list: the upstream trigger matcher treats
 * empty changed-files as "match any path", which is the safest default when
 * we don't have per-PR diff data. A follow-up can add an optional REST
 * fetcher if source authors want PR path filtering.
 */
import type { ChangedFilesFetcher } from '@kici-dev/engine';
import { type UniversalGitConfig } from './config.js';
/**
 * Universal-git implementation of ChangedFilesFetcher.
 *
 * One instance per universal-git source, configured with the source's
 * expanded `payloadPaths` + `eventMapping`.
 */
export declare class UniversalGitChangedFilesFetcher implements ChangedFilesFetcher {
    readonly provider: "generic";
    private readonly paths;
    private readonly eventMapping;
    constructor(params: {
        config: UniversalGitConfig;
    });
    /**
     * Extract changed files from the webhook payload.
     *
     * @param _repoIdentifier Unused — all data is in `payload`.
     * @param eventType       Raw header event type (pre-mapping).
     * @param payload         The webhook body the forge delivered.
     * @param _credentials    Unused — no REST call is made.
     */
    getChangedFiles(_repoIdentifier: string, eventType: string, payload: unknown, _credentials: unknown): Promise<string[]>;
    private classifyEvent;
}
//# sourceMappingURL=changed-files.d.ts.map