import type { GeneralJws } from './jws-types.js';
/**
 * Intersection type for all concrete message types.
 */
export declare type GenericMessage = {
    descriptor: Descriptor;
    authorization?: GeneralJws;
};
/**
 * Type of common decoded `authorization`property payload.
 */
export declare type BaseDecodedAuthorizationPayload = {
    descriptorCid: string;
};
/**
 * Intersection type for all DWN message descriptor.
 */
export declare type Descriptor = {
    interface: string;
    method: string;
    messageTimestamp: string;
};
/**
 * Messages that have `messageTimestamp` in their `descriptor` property.
 */
export declare type TimestampedMessage = GenericMessage & {
    descriptor: {
        messageTimestamp: string;
    };
};
/**
 * Message returned in a query result.
 * NOTE: the message structure is a modified version of the message received, the most notable differences are:
 * 1. does not contain `authorization`
 * 2. may include encoded data
 */
export declare type QueryResultEntry = {
    descriptor: Descriptor;
    encodedData?: string;
};
export declare type EqualFilter = string | number | boolean;
export declare type OneOfFilter = EqualFilter[];
/**
 * "greater than" or "greater than or equal to" range condition. `gt` and `gte` are mutually exclusive.
 */
export declare type GT = ({
    gt: string;
} & {
    gte?: never;
}) | ({
    gt?: never;
} & {
    gte: string;
});
/**
 * "less than" or "less than or equal to" range condition. `lt`, `lte` are mutually exclusive.
 */
export declare type LT = ({
    lt: string;
} & {
    lte?: never;
}) | ({
    lt?: never;
} & {
    lte: string;
});
/**
 * Ranger filter. 1 condition is required.
 */
export declare type RangeFilter = (GT | LT) & Partial<GT> & Partial<LT>;
export declare type Filter = {
    [property: string]: EqualFilter | OneOfFilter | RangeFilter;
};
//# sourceMappingURL=message-types.d.ts.map