import sql from "mssql";
declare type AccessStatusInput = QueryInput & {
    pool: sql.ConnectionPool;
};
declare type AccessStatusOut = {
    principal_id: number;
    UserName: string;
    User_or_Role: "APPLICATION_ROLE" | "CERTIFICATE_MAP" | "PED_USER" | "EXTERNAL_USER" | "WINDOWS_GROUP" | "ASYMMETRIC_KEY_" | "MAPPED_USER" | "DATABASE_ROLE" | "SQL_USER" | "WINDOWS_USER" | "EXTERNAL_GROUPS";
    Auth_Type: "NONE" | "INSTANCE" | "DATABASE" | "WINDOWS" | "EXTERNAL";
    state_desc: "DENY" | "REVOKE" | "GRANT" | "GRANT_WITH_GRANT_OPTION";
    /** Permission name - nvarchar(128) */
    permission_name: string;
    class_desc: "DATABASE" | "OBJECT_OR_COLUMN" | "SCHEMA" | "DATABASE_PRINCIPAL" | "ASSEMBLY" | "TYPE" | "XML_SCHEMA_COLLECTION" | "MESSAGE_TYPE" | "SERVICE_CONTRACT" | "SERVICE" | "REMOTE_SERVICE_BINDING" | "ROUTE" | "FULLTEXT_CATALOG" | "SYMMETRIC_KEYS" | "CERTIFICATE" | "ASYMMETRIC_KEY" | "FULLTEXT STOPLIST" | "SEARCH PROPERTY LIST" | "DATABASE SCOPED CREDENTIAL" | "EXTERNAL LANGUAGE";
    Object: string | null;
    create_date: Date;
    modify_date: Date;
};
/** @returns list of permissions to specific user */
export declare function ctAccessStatus({ pool, dbName, userName, }: AccessStatusInput): Promise<AccessStatusOut[]>;
declare type QueryInput = {
    /** if not provided it uses default pool database */
    dbName?: string;
    /** name of user or role */
    userName: string;
};
/**
 * @return sql query to get list of change tracking enabled tables
 */
export declare function ctAccessStatusQuery({ dbName, userName }: QueryInput): string;
export {};
