import type { AgentBusEvent, FileOwnership, OwnershipClaimResult } from '../types/bus/index.js';
import type { RunId } from '../types/ids/index.js';
import type { Logger } from '../utils/logger.js';
export declare class EditOwnershipTracker {
    private readonly ownerships;
    private readonly log;
    private readonly emit;
    constructor(log: Logger, emit: (event: AgentBusEvent) => void);
    private normalizePath;
    claim(filePath: string, owner: RunId): OwnershipClaimResult;
    release(filePath: string, owner: RunId): boolean;
    transfer(filePath: string, from: RunId, to: RunId): boolean;
    releaseAll(owner: RunId): number;
    getOwner(filePath: string): RunId | undefined;
    listByOwner(owner: RunId): FileOwnership[];
    checkConflict(filePath: string, requester: RunId): RunId | undefined;
}
//# sourceMappingURL=ownership.d.ts.map