import type { Injector } from 'graphql-modules';
import type { _DOLLAR_defs_Document } from '../../../../../green-invoice-graphql/src/index.js';
import type { DocumentDraft, DocumentIncomeRecord, DocumentIssueInput, DocumentPaymentRecord, DocumentVatType, ResolversTypes } from '../../../__generated__/types.js';
import { DocumentType } from '../../../shared/enums.js';
import type { TimelessDateString } from '../../../shared/types/index.js';
import type { AdminContext } from '../../admin-context/types.js';
import type { IGetContractsByIdsResult } from '../../contracts/types.js';
import type { IGetTransactionsByChargeIdsResult } from '../../transactions/types.js';
import type { IGetIssuedDocumentsByIdsResult } from '../types.js';
export declare function getPaymentsFromTransactions(injector: Injector, transactions: IGetTransactionsByChargeIdsResult[]): Promise<DocumentPaymentRecord[]>;
export declare function getIncomeRecordsFromDocuments(greenInvoiceDocuments: _DOLLAR_defs_Document[]): DocumentIncomeRecord[];
export declare function getTypeFromDocumentsAndTransactions(documents: {
    type: DocumentType;
}[], transactions: IGetTransactionsByChargeIdsResult[]): DocumentType;
export declare function filterAndHandleSwiftTransactions(originTransactions: IGetTransactionsByChargeIdsResult[], swiftBusinessId: string | null): IGetTransactionsByChargeIdsResult[];
export declare function getLinkedDocumentsAttributes(issuedDocuments: IGetIssuedDocumentsByIdsResult[], shouldCancel?: boolean): Pick<DocumentDraft, 'linkedDocumentIds' | 'linkType'>;
export declare function getDocumentDateOutOfTransactions(transactions: IGetTransactionsByChargeIdsResult[]): TimelessDateString | undefined;
export declare function deduceVatTypeFromBusiness(injector: Injector, locality: string, businessId?: string | null): Promise<DocumentVatType>;
export declare function createRemarks(contract: IGetContractsByIdsResult): string;
export declare const convertContractToDraft: (injector: Injector, contract: IGetContractsByIdsResult, locality: AdminContext["locality"], issueMonth: TimelessDateString) => Promise<import("../../../__generated__/types.js").Omit<DocumentDraft, "client"> & {
    client?: import("../../../__generated__/types.js").Maybe<ResolversTypes["Client"]>;
}>;
export declare function executeDocumentIssue(injector: Injector, adminBusinessId: string, initialInput: DocumentIssueInput, emailContent?: string, attachment?: boolean, chargeId?: string, sendEmail?: boolean): Promise<import("../../charges/types.js").IGetChargesByIdsResult | undefined>;
