import type { Platform } from 'esbuild';
import type { LegacyPackageCompileOptions, PackageCompileEsbuildConfig } from './XyConfig.ts';
export type CompilePlatform = Extract<Platform, 'browser' | 'neutral' | 'node'>;
/**
 * Normalize a per-platform compile entry into a `Record<string, Options>`,
 * stripping the legacy platform-level `esbuildOptions` field.
 */
export declare const resolvePlatformRecord: (value: Record<string, LegacyPackageCompileOptions> | boolean | undefined) => Record<string, LegacyPackageCompileOptions>;
export interface ResolvedCompilePlatforms {
    browser: Record<string, LegacyPackageCompileOptions>;
    deprecatedEmptyObjectTargets: CompilePlatform[];
    neutral: Record<string, LegacyPackageCompileOptions>;
    node: Record<string, LegacyPackageCompileOptions>;
}
/**
 * Resolve which platform targets compile, applying opt-in semantics:
 * `true`/non-empty object → build; `false`/`{}`/absent → skip. When no target
 * is explicitly built, `neutral` builds by default — unless `neutral` was
 * explicitly turned off. Enabling any target turns every unlisted target off.
 */
export declare const resolveCompilePlatforms: (compile?: PackageCompileEsbuildConfig) => ResolvedCompilePlatforms;
export declare const warnDeprecatedEmptyObjectTargets: (targets: CompilePlatform[]) => void;
//# sourceMappingURL=resolveCompilePlatforms.d.ts.map