/**
 * Persona sharing functionality via URLs
 */
import { Persona } from '../../types/persona.js';
import { GitHubClient } from '../../collection/GitHubClient.js';
export interface ShareResult {
    success: boolean;
    url?: string;
    gistId?: string;
    expiresAt?: string;
    message: string;
}
export declare class PersonaSharer {
    private githubClient;
    private currentUser;
    private exporter;
    private githubRateLimiter;
    constructor(githubClient: GitHubClient, currentUser: string | null);
    /**
     * Share a persona via GitHub Gist
     */
    sharePersona(persona: Persona, expiryDays?: number): Promise<ShareResult>;
    /**
     * Import a persona from a share URL
     */
    importFromUrl(url: string): Promise<{
        success: boolean;
        data?: any;
        message: string;
    }>;
    /**
     * Create a GitHub Gist
     */
    private createGist;
    /**
     * Create a base64 URL (fallback)
     */
    private createBase64Url;
    /**
     * Import from GitHub Gist
     */
    private importFromGist;
    /**
     * Validate URL for security (prevent SSRF attacks)
     */
    private validateShareUrl;
    /**
     * Import from base64 URL
     */
    private importFromBase64Url;
    /**
     * Extract Gist ID from GitHub URL
     */
    private extractGistId;
    /**
     * Format share success message
     */
    private formatShareSuccess;
}
//# sourceMappingURL=PersonaSharer.d.ts.map