import { Effect } from "effect"; /** * Package metadata structure * * @pure true - immutable data structure * @invariant name.length > 0 ∧ version matches semver pattern */ export interface PackageMetadata { readonly name: string; readonly version: string; readonly description?: string | undefined; readonly author?: string | undefined; readonly license?: string | undefined; } /** * Plugin meta structure for ESLint * * @pure true - immutable data structure */ export interface PluginMeta { readonly name: string; readonly version: string; } /** * Extract essential metadata from package.json content * * @param packageJson - Raw package.json object (validated externally) * @returns Validated package metadata * * @pure true - no side effects, deterministic transformation * @invariant ∀ input: valid_json(input) → valid_metadata(extract(input)) * @complexity O(1) - constant time property access * @precondition packageJson.name ∧ packageJson.version exist * @postcondition result.name === packageJson.name ∧ result.version === packageJson.version */ export declare const extractPackageMetadata: (packageJson: Record) => Effect.Effect; /** * Create ESLint plugin meta object from package metadata * * @param metadata - Validated package metadata * @returns ESLint plugin meta structure * * @pure true - deterministic transformation * @invariant ∀ meta: createPluginMeta(meta).name === meta.name * @complexity O(1) - simple object construction */ export declare const createPluginMeta: (metadata: PackageMetadata) => PluginMeta; //# sourceMappingURL=package-info.d.ts.map