type AnyEnvironmentFunction = (...args: never[]) => unknown; type FarmEnvironment = "server" | "client"; interface FarmIsomorphicFnOptions { server: (...args: TArgs) => TServerResult; client: (...args: TArgs) => TClientResult; } declare class FarmEnvironmentError extends Error { readonly api: "createServerOnlyFn" | "createClientOnlyFn"; readonly expected: FarmEnvironment; readonly actual: FarmEnvironment; readonly code = "FARM_ENVIRONMENT_MISMATCH"; constructor(api: "createServerOnlyFn" | "createClientOnlyFn", expected: FarmEnvironment, actual: FarmEnvironment); } declare function createServerOnlyFn(implementation: TFunction): TFunction; declare function createClientOnlyFn(implementation: TFunction): TFunction; declare function createIsomorphicFn(options: FarmIsomorphicFnOptions): (...args: TArgs) => TServerResult | TClientResult; export { type FarmEnvironment, FarmEnvironmentError, type FarmIsomorphicFnOptions, createClientOnlyFn, createIsomorphicFn, createServerOnlyFn };