/// import * as url from 'url'; import { provides } from './decorators'; export declare enum Method { GET = 1, PUT = 2, POST = 3, DELETE = 4, PATCH = 5, } export declare type Verb = string | Method; export declare namespace Verb { function stringify(verb: Verb): string; } export declare enum LinkRelation { About = 1, Alternate = 2, Appendix = 3, Archives = 4, Author = 5, BlockedBy = 6, Bookmark = 7, Canonical = 8, Chapter = 9, Collection = 10, Contents = 11, Copyright = 12, CreateForm = 13, Current = 14, Derivedfrom = 15, Describedby = 16, Describes = 17, Disclosure = 18, DnsPrefetch = 19, Duplicate = 20, Edit = 21, EditForm = 22, EditMedia = 23, Enclosure = 24, First = 25, Glossary = 26, Help = 27, Hosts = 28, Hub = 29, Icon = 30, Index = 31, Item = 32, Last = 33, LatestVersion = 34, License = 35, Lrdd = 36, Memento = 37, Monitor = 38, MonitorGroup = 39, Next = 40, NextArchive = 41, Nofollow = 42, Noreferrer = 43, Original = 44, Payment = 45, Pingback = 46, Preconnect = 47, PredecessorVersion = 48, Prefetch = 49, Preload = 50, Prerender = 51, Prev = 52, Preview = 53, Previous = 54, PrevArchive = 55, PrivacyPolicy = 56, Profile = 57, Related = 58, Replies = 59, Search = 60, Section = 61, Self = 62, Service = 63, Start = 64, Stylesheet = 65, Subsection = 66, SuccessorVersion = 67, Tag = 68, TermsOfService = 69, Timegate = 70, Timemap = 71, Type = 72, Up = 73, VersionHistory = 74, Via = 75, WorkingCopy = 76, WorkingCopyOf = 77, } export declare type Rel = string | LinkRelation; export declare namespace Rel { const Param = "rel"; const Curies = "curies"; function stringify(rel: Rel): string; } export declare type Href = string | url.Url; export declare namespace Href { function stringify(href: Href): string; } export declare namespace Hal { interface Link { href: string; templated?: boolean; type?: string; deprecation?: string; name?: string; profile?: string; title?: string; hreflang?: string; } type Links = { [rel: string]: Link | Link[]; }; type Embedded = { [rel: string]: Resource | Resource[]; }; interface Resource { _links?: Links; _embedded?: Embedded; } } export interface Template { ns?: string; rel?: string; routes?: Template.Route[]; } export declare namespace Template { interface Route { href: string; methods: Method[]; } interface Method { verb: string; options: provides.Options.Rel; } }