import type { CompletionLineItemCreate } from './CompletionLineItemCreate';
/**
 *
 * @export
 * @interface TransactionCompletionDetails
 */
export interface TransactionCompletionDetails {
    /**
     * The line items to be captured in the transaction completion.
     * @type {Array<CompletionLineItemCreate>}
     * @memberof TransactionCompletionDetails
     */
    lineItems?: Array<CompletionLineItemCreate>;
    /**
     * Allow to store additional information about the object.
     * @type {{ [key: string]: string; }}
     * @memberof TransactionCompletionDetails
     */
    metaData?: {
        [key: string]: string;
    };
    /**
     * Whether this is the final completion for the transaction, meaning no further completions can occur, and the transaction will move to its completed state upon success.
     * @type {boolean}
     * @memberof TransactionCompletionDetails
     */
    lastCompletion?: boolean;
    /**
     * The statement descriptor that appears on a customer's bank statement, providing an explanation for charges or payments, helping customers identify the transaction.
     * @type {string}
     * @memberof TransactionCompletionDetails
     */
    statementDescriptor?: string;
    /**
     * A client-generated nonce which uniquely identifies some action to be executed. Subsequent requests with the same external ID do not execute the action again, but return the original result.
     * @type {string}
     * @memberof TransactionCompletionDetails
     */
    externalId?: string;
    /**
     * The merchant's reference used to identify the invoice.
     * @type {string}
     * @memberof TransactionCompletionDetails
     */
    invoiceMerchantReference?: string;
    /**
     * A unique identifier for the object.
     * @type {number}
     * @memberof TransactionCompletionDetails
     */
    id?: number;
}
/**
 * Check if a given object implements the TransactionCompletionDetails interface.
 */
export declare function instanceOfTransactionCompletionDetails(value: object): value is TransactionCompletionDetails;
export declare function TransactionCompletionDetailsFromJSON(json: any): TransactionCompletionDetails;
export declare function TransactionCompletionDetailsFromJSONTyped(json: any, ignoreDiscriminator: boolean): TransactionCompletionDetails;
export declare function TransactionCompletionDetailsToJSON(json: any): TransactionCompletionDetails;
export declare function TransactionCompletionDetailsToJSONTyped(value?: TransactionCompletionDetails | null, ignoreDiscriminator?: boolean): any;
