/**
 * Plugin system types
 */
/**
 * Plugin metadata (from package.json or plugin.json)
 */
export interface PluginMetadata {
    name: string;
    version: string;
    description?: string;
    author?: string;
    homepage?: string;
    keywords?: string[];
}
/**
 * Plugin manifest (plugin.json)
 */
export interface PluginManifest extends PluginMetadata {
    main: string;
    commands?: PluginCommand[];
    permissions?: PluginPermissions;
}
/**
 * Plugin command definition
 */
export interface PluginCommand {
    name: string;
    description: string;
    handler: string;
    options?: PluginOption[];
}
/**
 * Plugin command option
 */
export interface PluginOption {
    name: string;
    description: string;
    type?: 'string' | 'number' | 'boolean';
    required?: boolean;
    default?: any;
}
/**
 * Plugin permissions (security)
 */
export interface PluginPermissions {
    network?: boolean;
    filesystem?: 'read' | 'write' | 'full';
    environment?: boolean;
    subprocess?: boolean;
}
/**
 * Loaded plugin instance
 */
export interface Plugin {
    metadata: PluginManifest;
    path: string;
    module: any;
    enabled: boolean;
    trusted: boolean;
}
/**
 * Plugin trust record
 */
export interface PluginTrust {
    name: string;
    version: string;
    trustedAt: string;
    trustedBy: 'user' | 'system';
    checksum?: string;
}
/**
 * Plugin registry (stored in ~/.ace/plugins.json)
 */
export interface PluginRegistry {
    trusted: PluginTrust[];
    enabled: string[];
    disabled: string[];
}
/**
 * Plugin execution context
 */
export interface PluginContext {
    config: any;
    logger: any;
    client: any;
}
//# sourceMappingURL=plugin.d.ts.map