import { EndpointDefaults } from "./EndpointDefaults" ; import { RequestOptions } from "./RequestOptions" ; import { RequestParameters } from "./RequestParameters" ; import { Route } from "./Route" ; import { Endpoints } from "./generated/Endpoints" ; export interface EndpointInterface < D extends object = object > { param { object } endpoint < O extends RequestParameters = RequestParameters > ( options ) : RequestOptions & Pick < D & O , keyof RequestOptions > ; param { string } route param { object } parameters < R extends Route , P extends RequestParameters = R extends keyof Endpoints ? Endpoints [ R ] [ "parameters" ] & RequestParameters : RequestParameters > ( route , parameters ? ) : ( R extends keyof Endpoints ? Endpoints [ R ] [ "request" ] : RequestOptions ) & Pick < P , keyof RequestOptions > ; /**
     * Object with current default route and parameters
     */ DEFAULTS : D & EndpointDefaults ; /**
     * Returns a new `endpoint` interface with new defaults
     */ defaults : < O extends RequestParameters = RequestParameters > ( newDefaults : O ) => EndpointInterface < D & O > ; merge : { param { string } route param { object } parameters < R extends Route , P extends RequestParameters = R extends keyof Endpoints ? Endpoints [ R ] [ "parameters" ] & RequestParameters : RequestParameters > ( route , parameters ? ) : D & ( R extends keyof Endpoints ? Endpoints [ R ] [ "request" ] & Endpoints [ R ] [ "parameters" ] : EndpointDefaults ) & P ; param { object } endpoint < P extends RequestParameters = RequestParameters > ( options ) : EndpointDefaults & D & P ; deprecated ( ) : D & EndpointDefaults ; } ; param { object } options parse : < O extends EndpointDefaults = EndpointDefaults > ( options : O ) => RequestOptions & Pick < O , keyof RequestOptions > ; }