import { IConnection, IOptions } from "../../../../connection.ts";
import { Service } from "../../../../espConnection.ts";
export declare namespace Wsstore {
    type int = number;
    interface CreateStoreRequest {
        Name?: string;
        Type?: string;
        Description?: string;
        MaxValueSize?: int;
    }
    interface Exception {
        Code: string;
        Audience: string;
        Source: string;
        Message: string;
    }
    interface Exceptions {
        Source: string;
        Exception: Exception[];
    }
    interface CreateStoreResponse {
        Exceptions: Exceptions;
        Name: string;
        Type: string;
        Description: string;
        Owner: string;
        Success: boolean;
    }
    interface DeleteRequest {
        StoreName?: string;
        Namespace?: string;
        Key?: string;
        UserSpecific?: boolean;
        TargetUser?: string;
    }
    interface DeleteResponse {
        Exceptions: Exceptions;
        Success: boolean;
    }
    interface DeleteNamespaceRequest {
        StoreName?: string;
        Namespace?: string;
        UserSpecific?: boolean;
        TargetUser?: string;
    }
    interface DeleteNamespaceResponse {
        Exceptions: Exceptions;
        Success: boolean;
    }
    interface FetchRequest {
        StoreName?: string;
        Namespace?: string;
        Key?: string;
        UserSpecific?: boolean;
    }
    interface FetchResponse {
        Exceptions: Exceptions;
        Value: string;
    }
    interface FetchAllRequest {
        StoreName?: string;
        Namespace?: string;
        UserSpecific?: boolean;
    }
    interface Pair {
        Key: string;
        Value: string;
    }
    interface Pairs {
        Pair: Pair[];
    }
    interface FetchAllResponse {
        Exceptions: Exceptions;
        Namespace: string;
        Pairs: Pairs;
    }
    interface FetchKeyMDRequest {
        StoreName?: string;
        Namespace?: string;
        Key?: string;
        UserSpecific?: boolean;
    }
    interface FetchKeyMDResponse {
        Exceptions: Exceptions;
        StoreName: string;
        Namespace: string;
        Key: string;
        Pairs: Pairs;
    }
    interface ListKeysRequest {
        StoreName?: string;
        Namespace?: string;
        UserSpecific?: boolean;
    }
    interface KeySet {
        Key: string[];
    }
    interface ListKeysResponse {
        Exceptions: Exceptions;
        StoreName: string;
        Namespace: string;
        KeySet: KeySet;
    }
    interface ListNamespacesRequest {
        StoreName?: string;
        UserSpecific?: boolean;
    }
    interface Namespaces {
        Namespace: string[];
    }
    interface ListNamespacesResponse {
        Exceptions: Exceptions;
        StoreName: string;
        Namespaces: Namespaces;
    }
    interface ListStoresRequest {
        NameFilter?: string;
        TypeFilter?: string;
        OwnerFilter?: string;
    }
    interface Store {
        Name: string;
        Type: string;
        Description: string;
        Owner: string;
        CreateTime: string;
        MaxValSize: string;
        IsDefault: boolean;
    }
    interface Stores {
        Store: Store[];
    }
    interface ListStoresResponse {
        Exceptions: Exceptions;
        Stores: Stores;
    }
    interface wsstorePingRequest {
    }
    interface wsstorePingResponse {
    }
    interface SetRequest {
        StoreName?: string;
        Namespace?: string;
        Key?: string;
        Value?: string;
        UserSpecific?: boolean;
    }
    interface SetResponse {
        Exceptions: Exceptions;
        Success: boolean;
    }
}
export declare class storeServiceBase extends Service {
    constructor(optsConnection: IOptions | IConnection);
    CreateStore(request: Partial<Wsstore.CreateStoreRequest>): Promise<Wsstore.CreateStoreResponse>;
    Delete(request: Partial<Wsstore.DeleteRequest>): Promise<Wsstore.DeleteResponse>;
    DeleteNamespace(request: Partial<Wsstore.DeleteNamespaceRequest>): Promise<Wsstore.DeleteNamespaceResponse>;
    Fetch(request: Partial<Wsstore.FetchRequest>): Promise<Wsstore.FetchResponse>;
    FetchAll(request: Partial<Wsstore.FetchAllRequest>): Promise<Wsstore.FetchAllResponse>;
    FetchKeyMetadata(request: Partial<Wsstore.FetchKeyMDRequest>): Promise<Wsstore.FetchKeyMDResponse>;
    ListKeys(request: Partial<Wsstore.ListKeysRequest>): Promise<Wsstore.ListKeysResponse>;
    ListNamespaces(request: Partial<Wsstore.ListNamespacesRequest>): Promise<Wsstore.ListNamespacesResponse>;
    ListStores(request: Partial<Wsstore.ListStoresRequest>): Promise<Wsstore.ListStoresResponse>;
    Ping(request: Partial<Wsstore.wsstorePingRequest>): Promise<Wsstore.wsstorePingResponse>;
    Set(request: Partial<Wsstore.SetRequest>): Promise<Wsstore.SetResponse>;
}
