/**
 * Pennyfarthing detection and persona resolution for server module.
 * Extracted from packages/cyclist/src/pennyfarthing.ts (Story 98-17).
 */
export interface Helper {
    name: string;
    style?: string;
}
export interface Persona {
    character: string;
    displayName: string;
    role: string;
    roleDescription: string;
    style: string;
    theme: string;
    slug: string;
    quote?: string;
    helper?: Helper;
    ocean?: {
        O: number;
        C: number;
        E: number;
        A: number;
        N: number;
    };
}
interface ThemeConfig {
    theme: string;
}
/**
 * Detects if a directory is a Pennyfarthing-enabled project
 */
export declare function detectPennyfarthingProject(projectDir: string): boolean;
/**
 * Loads theme configuration from .pennyfarthing/config.local.yaml
 */
export declare function loadThemeConfig(projectDir: string): ThemeConfig | null;
/**
 * Loads and parses a theme YAML file
 */
export declare function loadThemeYaml(themePath: string): Record<string, Persona> | null;
export declare function selectCatchphrase(catchphrases: string[] | undefined | null, fallbackQuote: string | undefined | null): string;
/**
 * Gets the current persona data for the active agent
 */
export declare function getCurrentPersona(projectDir: string, sessionId?: string): Persona | null;
/**
 * Gets full persona details including voice, quirks, background for popup display
 */
export declare function getFullPersonaDetails(projectDir: string, sessionId?: string): unknown;
/**
 * Watches for agent changes and invokes callback when agent changes
 */
export declare function watchAgentChanges(projectDir: string, sessionId: string | undefined, callback: (agentRole: string) => void): () => void;
export {};
//# sourceMappingURL=pennyfarthing.d.ts.map