import { AbstractCheqdSDKModule, MinimalImportableCheqdSDKModule } from './_';
import { CheqdSigningStargateClient } from '../signer';
import { EncodeObject, GeneratedType } from '@cosmjs/proto-signing-cjs';
import { DidStdFee, IContext, ISignInputs, QueryExtensionSetup } from '../types';
import { Metadata, MsgCreateResource, MsgCreateResourcePayload, QueryCollectionResourcesResponse, ResourceWithMetadata } from '@cheqd/ts-proto-cjs/cheqd/resource/v2';
import { DeliverTxResponse, QueryClient } from '@cosmjs/stargate-cjs';
import { SignInfo } from '@cheqd/ts-proto-cjs/cheqd/did/v2/index';
import { CheqdQuerier } from '../querier';
export declare const defaultResourceExtensionKey: "resource";
export declare const protobufLiterals: {
    readonly MsgCreateResource: "MsgCreateResource";
    readonly MsgCreateResourceResponse: "MsgCreateResourceResponse";
};
export declare const typeUrlMsgCreateResource: "/cheqd.resource.v2.MsgCreateResource";
export declare const typeUrlMsgCreateResourceResponse: "/cheqd.resource.v2.MsgCreateResourceResponse";
export interface MsgCreateResourceEncodeObject extends EncodeObject {
    readonly typeUrl: typeof typeUrlMsgCreateResource;
    readonly value: Partial<MsgCreateResource>;
}
export declare function isMsgCreateResourceEncodeObject(obj: EncodeObject): obj is MsgCreateResourceEncodeObject;
export type MinimalImportableResourceModule = MinimalImportableCheqdSDKModule<ResourceModule>;
export type ResourceExtension = {
    readonly [defaultResourceExtensionKey]: {
        readonly resource: (collectionId: string, resourceId: string) => Promise<ResourceWithMetadata>;
        readonly resourceMetadata: (collectionId: string, resourceId: string) => Promise<Metadata>;
        readonly collectionResources: (collectionId: string, paginationKey?: Uint8Array) => Promise<QueryCollectionResourcesResponse>;
    };
};
export declare const setupResourceExtension: (base: QueryClient) => ResourceExtension;
export declare class ResourceModule extends AbstractCheqdSDKModule {
    static readonly registryTypes: Iterable<[string, GeneratedType]>;
    static readonly baseMinimalDenom: "ncheq";
    static readonly fees: {
        readonly DefaultCreateResourceImageFee: {
            readonly amount: "10000000000";
            readonly denom: "ncheq";
        };
        readonly DefaultCreateResourceJsonFee: {
            readonly amount: "10000000000";
            readonly denom: "ncheq";
        };
        readonly DefaultCreateResourceDefaultFee: {
            readonly amount: "10000000000";
            readonly denom: "ncheq";
        };
    };
    static readonly querierExtensionSetup: QueryExtensionSetup<ResourceExtension>;
    querier: CheqdQuerier & ResourceExtension;
    constructor(signer: CheqdSigningStargateClient, querier: CheqdQuerier & ResourceExtension);
    getRegistryTypes(): Iterable<[string, GeneratedType]>;
    getQuerierExtensionSetup(): QueryExtensionSetup<ResourceExtension>;
    static signPayload(payload: MsgCreateResourcePayload, signInputs: ISignInputs[] | SignInfo[]): Promise<MsgCreateResource>;
    createLinkedResourceTx(signInputs: ISignInputs[] | SignInfo[], resourcePayload: Partial<MsgCreateResourcePayload>, address: string, fee?: DidStdFee | 'auto' | number, memo?: string, context?: IContext): Promise<DeliverTxResponse>;
    queryLinkedResource(collectionId: string, resourceId: string, context?: IContext): Promise<ResourceWithMetadata>;
    queryLinkedResourceMetadata(collectionId: string, resourceId: string, context?: IContext): Promise<Metadata>;
    queryLinkedResources(collectionId: string, context?: IContext): Promise<QueryCollectionResourcesResponse>;
    static readMimeType(content: Uint8Array): Promise<string>;
    static generateCreateResourceImageFees(feePayer: string, granter?: string): Promise<DidStdFee>;
    static generateCreateResourceJsonFees(feePayer: string, granter?: string): Promise<DidStdFee>;
    static generateCreateResourceDefaultFees(feePayer: string, granter?: string): Promise<DidStdFee>;
}
//# sourceMappingURL=resource.d.ts.map