import { type CommunityPublishSkillInput, type CommunityPublishSkillResult } from "../runtime/community/community-consent-client.js";
import { type CommunityTelemetryRecorder } from "../runtime/community/community-telemetry-recorder.js";
export interface TurnSkillAutoPersistHost {
    log(message: string): void;
}
export interface CommunitySkillPublisher {
    publishSkill(input: CommunityPublishSkillInput): Promise<CommunityPublishSkillResult>;
}
export type AutoPersistResult = {
    status: "ignored";
} | {
    status: "exists";
    skillPath: string;
} | {
    status: "created";
    skillPath: string;
} | {
    status: "blocked";
    skillPath: string;
    reason: string;
} | {
    status: "skipped";
    skillPath: string;
    reason: string;
};
export type CommunityPublishAuditDecision = "published" | "blocked" | "skipped";
export interface CommunityPublishAuditEntry {
    eventTurnId: string;
    skillName: string;
    decision: CommunityPublishAuditDecision;
    reason: string;
    resourceId?: string;
    createdAt: string;
}
export declare const COMMUNITY_PUBLISH_AUDIT_FILE = "community-publish-audit.jsonl";
export declare function maybeAutoPersistSkillInstruction(params: {
    instruction: unknown;
    eventTurnId: string;
    projectRoot: string;
    host: TurnSkillAutoPersistHost;
    communityPublisher?: CommunitySkillPublisher | null;
    communityTelemetryRecorder?: CommunityTelemetryRecorder | null;
}): Promise<AutoPersistResult>;
export declare function createDefaultCommunitySkillPublisher(): CommunitySkillPublisher | null;
export declare function listCommunityPublishAuditEntries(input?: {
    limit?: number;
}): CommunityPublishAuditEntry[];
