import * as factory from '../../../factory';
import type { AuthorizationRepo } from '../../../repo/authorization';
import type { TicketRepo } from '../../../repo/ticket';
type IPermitOrInvoice = Pick<factory.ownershipInfo.IPermitAsGood, 'identifier' | 'typeOf'> | Pick<factory.invoice.IInvoice, 'paymentMethodId' | 'typeOf'>;
declare function verifyTicketTokenAsNeeded(params: {
    project: {
        id: string;
    };
    object: Pick<factory.action.authorize.paymentMethod.any.IObjectWithoutDetail, 'issuedThrough' | 'ticketToken'>;
    paymentServiceType: factory.service.paymentService.PaymentServiceType;
    purpose: factory.action.authorize.paymentMethod.any.IPurpose;
}): (repos: {
    authorization: AuthorizationRepo;
    ticket: TicketRepo;
}) => Promise<{
    permitOrInvoice?: IPermitOrInvoice;
}>;
export { verifyTicketTokenAsNeeded };
