/**
 * Result interface for sending DIDComm messages through
 * {@link IDIDCommTransport.send}.
 *
 * @beta This API may change without a BREAKING CHANGE notice.
 */
export interface IDIDCommTransportResult {
    result?: string;
    error?: string;
    returnMessage?: string;
}
/**
 * Common interface for transports that can be used in the
 * {@link DIDComm} module.
 *
 * @beta This API may change without a BREAKING CHANGE notice.
 */
export interface IDIDCommTransport {
    /**
     * Identifier of this transport that can be used in case the
     * message thread supports reusing the transport connection.
     */
    id: string;
    /**
     * Returns `true` if this transport is suitable for the provided
     * DID Document service section, otherwise `false`.
     * @param service - The DID Document service section
     *
     * @beta This API may change without a BREAKING CHANGE notice.
     */
    isServiceSupported(service: any): boolean;
    /**
     * Sends the provided raw message (without further processing) to
     * the service endpoint defined in the provided DID Document service
     * section.
     *
     * @param service - The DID Document service section that contains
     * a `serviceEndpoint` entry.
     * @param message - The message to be sent.
     *
     * @beta This API may change without a BREAKING CHANGE notice.
     */
    send(service: any, message: string): Promise<IDIDCommTransportResult>;
}
/**
 * Abstract implementation of {@link IDIDCommTransport}.
 *
 * @beta This API may change without a BREAKING CHANGE notice.
 */
export declare abstract class AbstractDIDCommTransport implements IDIDCommTransport {
    id: string;
    /**
     * Shared constructor that takes an optional identifier (for reusing) for
     * this {@link IDIDCommTransport}.
     *
     * @param id - An optional identifier for this {@link IDIDCommTransport}.
     *
     * @beta This API may change without a BREAKING CHANGE notice.
     */
    constructor(id?: string);
    /** {@inheritdoc IDIDCommTransport.isServiceSupported} */
    abstract isServiceSupported(service: any): boolean;
    /** {@inheritdoc IDIDCommTransport.send} */
    abstract send(service: any, message: string): Promise<IDIDCommTransportResult>;
}
/**
 * Implementation of {@link IDIDCommTransport} to provide a simple
 * transport based on HTTP(S) requests.
 *
 * @beta This API may change without a BREAKING CHANGE notice.
 */
export declare class DIDCommHttpTransport extends AbstractDIDCommTransport {
    /**
     * Defines the default HTTP method to use if not specified
     * in the DID Document service entry of the recipient.
     */
    httpMethod: 'post' | 'get';
    /**
     * Creates a new {@link DIDCommHttpTransport}.
     * @param httpMethod - Default HTTP method if not specified in the service
     * section.
     */
    constructor(httpMethod?: 'post' | 'get');
    /** {@inheritdoc AbstractDIDCommTransport.isServiceSupported} */
    isServiceSupported(service: any): any;
    /** {@inheritdoc AbstractDIDCommTransport.send} */
    send(service: any, message: string): Promise<IDIDCommTransportResult>;
    private inferContentType;
}
//# sourceMappingURL=transports.d.ts.map