export type IsomorphicFn = [], TServer = undefined, TClient = undefined> = (...args: TArgs) => TServer | TClient; export interface ServerOnlyFn, TServer> extends IsomorphicFn { client: (clientImpl: (...args: TArgs) => TClient) => IsomorphicFn; } export interface ClientOnlyFn, TClient> extends IsomorphicFn { server: (serverImpl: (...args: TArgs) => TServer) => IsomorphicFn; } export interface IsomorphicFnBase extends IsomorphicFn { server: , TServer>(serverImpl: (...args: TArgs) => TServer) => ServerOnlyFn; client: , TClient>(clientImpl: (...args: TArgs) => TClient) => ClientOnlyFn; } export declare function createIsomorphicFn(): IsomorphicFnBase;