import * as ContentstackManagementSDK from '@contentstack/management';
export interface Organization {
    uid: string;
    name: string;
    enabled: boolean;
}
export interface Stack {
    uid: string;
    name: string;
    master_locale: string;
    api_key: string;
    org_uid: string;
}
export interface ManagementToken {
    response_code: string;
    response_message: string;
}
export interface CreateStackOptions {
    name: string;
    description: string;
    master_locale: string;
    org_uid: string;
}
export interface createManagementTokenOptions {
    name: string;
    description: string;
    expires_on: string;
    scope: {
        module: string;
        acl: {
            read: boolean;
            write?: boolean;
        };
        branches?: string[];
    }[];
}
export default class ContentstackClient {
    instance: Promise<ContentstackManagementSDK.ContentstackClient>;
    limit: number;
    constructor(cmaHost: string, limit: number);
    getOrganization(org_uid: string): Promise<Organization>;
    getOrganizations(skip?: number, organizations?: Organization[]): Promise<Organization[]>;
    private mapOrganization;
    getStack(stackUID: string): Promise<Stack>;
    getStacks(org_uid: string, skip?: number, stacks?: Stack[]): Promise<Stack[]>;
    getContentTypeCount(api_key: string, managementToken?: string): Promise<number>;
    createStack(options: CreateStackOptions): Promise<Stack>;
    createManagementToken(api_key: string, managementToken: any, options: createManagementTokenOptions): Promise<ManagementToken>;
    private buildError;
}
