import { GraphQLClient } from 'graphql-request';
import { AddSignatoriesInput, AddSignatoryInput, ChangeSignatoryInput, ExtendSignatureOrderInput, CloseSignatureOrderInput, CreateSignatureOrderInput, CreateBatchSignatoryInput, Sdk, SignActingAsInput, ChangeSignatureOrderInput } from './application-viewer-types';
import * as Types from './application-viewer-types';
export { Types as CriiptoSignaturesTypes };
export interface CriiptoSignaturesOptions {
    endpoint?: string;
}
export declare class CriiptoSignatures {
    client: GraphQLClient;
    sdk: Sdk;
    constructor(clientId: string, clientSecret: string, options?: CriiptoSignaturesOptions);
    createSignatureOrder(input: CreateSignatureOrderInput): Promise<NonNullable<Types.CreateSignatureOrderMutation['createSignatureOrder']>['signatureOrder']>;
    addSignatory(signatureOrderId: string, input?: Omit<AddSignatoryInput, 'signatureOrderId'>): Promise<NonNullable<Types.AddSignatoryMutation['addSignatory']>['signatory']>;
    addSignatories(signatureOrderId: string, input: Omit<AddSignatoriesInput, 'signatureOrderId'>): Promise<NonNullable<Types.AddSignatoriesMutation['addSignatories']>['signatories']>;
    changeSignatory(signatoryId: string, input: Omit<ChangeSignatoryInput, 'signatoryId'>): Promise<NonNullable<Types.ChangeSignatoryMutation['changeSignatory']>['signatory']>;
    extendSignatureOrder(signatureOrderId: string, input: Omit<ExtendSignatureOrderInput, 'signatureOrderId'>): Promise<NonNullable<Types.ExtendSignatureOrderMutation['extendSignatureOrder']>['signatureOrder']>;
    closeSignatureOrder(signatureOrderId: string, input?: Omit<CloseSignatureOrderInput, 'signatureOrderId'>): Promise<NonNullable<Types.CloseSignatureOrderMutation['closeSignatureOrder']>['signatureOrder']>;
    cancelSignatureOrder(signatureOrderId: string): Promise<NonNullable<Types.CancelSignatureOrderMutation['cancelSignatureOrder']>['signatureOrder']>;
    cleanupSignatureOrder(signatureOrderId: string): Promise<NonNullable<Types.CleanupSignatureOrderMutation['cleanupSignatureOrder']>['signatureOrder']>;
    signActingAs(signatoryId: string, input: Omit<SignActingAsInput, 'signatoryId'>): Promise<NonNullable<Types.SignActingAsMutation['signActingAs']>['signatory']>;
    deleteSignatory(signatureOrderId: string, signatoryId: string): Promise<NonNullable<Types.DeleteSignatoryMutation['deleteSignatory']>['signatureOrder']>;
    createBatchSignatory(input: CreateBatchSignatoryInput): Promise<NonNullable<Types.CreateBatchSignatoryMutation['createBatchSignatory']>['batchSignatory']>;
    changeSignatureOrder(input: ChangeSignatureOrderInput): Promise<NonNullable<Types.ChangeSignatureOrderMutation['changeSignatureOrder']>['signatureOrder']>;
    validateDocument(input: Types.ValidateDocumentInput): Promise<NonNullable<Types.ValidateDocumentMutation['validateDocument']>>;
    querySignatureOrder(signatureOrderId: string, includeDocuments?: boolean): Promise<null | NonNullable<Types.SignatureOrderWithDocumentsQuery['signatureOrder']> | NonNullable<Types.SignatureOrderQuery['signatureOrder']>>;
    querySignatory(signatoryId: string): Promise<Types.SignatoryQuery['signatory']>;
    querySignatureOrders<T extends Types.SignatureOrdersQuery['viewer']>(query?: {
        first: number;
        after?: string;
        status?: Types.SignatureOrderStatus;
    }): Promise<T extends {
        __typename: 'Application';
    } ? Array<T['signatureOrders']['edges'][number]['node']> : never>;
    queryBatchSignatory(batchSignatoryId: string): Promise<Types.BatchSignatoryQuery['batchSignatory']>;
}
export default CriiptoSignatures;
