import * as gracely from "gracely"; import * as isoly from "isoly"; import * as authly from "authly"; import { Connection } from "@payfunc/model-base"; import { Authorization as ModelAuthorization } from "../Authorization"; import { Operation } from "../Authorization/Operation"; import { Capture } from "../Capture"; import { Refund } from "../Refund"; import * as state from "../State"; interface Operations { cancel: () => Promise; capture: (request: Capture.Creatable) => Promise; refund: (request: Refund.Creatable) => Promise; } export declare class Authorization { readonly connection: Connection; constructor(connection: Connection); create(request: ModelAuthorization.Creatable, method?: "POST" | "GET"): Promise<(ModelAuthorization & Operations) | gracely.Error>; update(updates: Operation.Creatable[]): Promise; list(state: true, merchants?: string[], start?: isoly.Date, end?: isoly.Date): Promise<(state.Authorization | state.FailedAuthorization)[] | gracely.Error>; list(state: true, merchants?: string, start?: isoly.Date, end?: isoly.Date, limit?: number, continuation?: boolean): Promise<(state.Authorization | state.FailedAuthorization)[] | gracely.Error>; list(state?: false | undefined, merchants?: string[], start?: isoly.Date, end?: isoly.Date): Promise; list(state?: false | undefined, merchants?: string, start?: isoly.Date, end?: isoly.Date, limit?: number, continuation?: boolean): Promise; get(authorization: authly.Identifier): Promise; load(authorization: ModelAuthorization): ModelAuthorization & Operations; load(authorization: string): { id: string; } & Operations; load(authorization: ModelAuthorization | string): (ModelAuthorization | { id: string; }) & Operations; static open(url: string, key: string): Authorization; static open(url?: string, key?: string): Authorization | undefined; } export {};