/**
 * Submit personas to the collection
 * Handles both authenticated and anonymous submission workflows
 *
 * Security Features:
 * - Rate limiting to prevent spam (5 submissions per hour per session)
 * - URL length validation for GitHub limits
 * - No email submission pathway (GitHub account required)
 */
import { Persona } from '../types/persona.js';
import { RateLimitStatus } from '../update/RateLimiter.js';
export declare class PersonaSubmitter {
    private rateLimiter;
    constructor();
    /**
     * Generate GitHub issue for persona submission
     * Includes URL length validation to comply with GitHub's ~8KB limit
     */
    generateSubmissionIssue(persona: Persona): {
        issueTitle: string;
        issueBody: string;
        githubIssueUrl: string;
        rateLimitStatus?: RateLimitStatus;
    };
    /**
     * Format submission response for authenticated users
     */
    formatSubmissionResponse(persona: Persona, githubIssueUrl: string, personaIndicator?: string): string;
    /**
     * Format anonymous submission response for unauthenticated users
     */
    formatAnonymousSubmissionResponse(persona: Persona, githubIssueUrl: string, personaIndicator?: string): string;
    /**
     * Build the full issue body with all persona details
     */
    private buildIssueBody;
    /**
     * Build a truncated issue body to fit within URL limits
     */
    private buildTruncatedIssueBody;
    /**
     * Serialize persona metadata to YAML format
     */
    private serializeMetadata;
    /**
     * Build the GitHub issue URL
     */
    private buildGitHubIssueUrl;
    /**
     * Build common response header used by both authenticated and anonymous responses
     */
    private buildResponseHeader;
    /**
     * Build standard submission steps for authenticated users
     */
    private buildStandardSubmissionSteps;
    /**
     * Build anonymous submission process instructions
     */
    private buildAnonymousSubmissionProcess;
    /**
     * Build anonymous submission next steps and expectations
     */
    private buildAnonymousNextSteps;
}
//# sourceMappingURL=PersonaSubmitter.d.ts.map