///
import { Stats } from 'fs';
declare function createMode(stat?: number | createMode.StatsMode): createMode.Mode;
declare namespace createMode {
type StatsMode = Pick;
function isStatsMode(v: any): v is StatsMode;
class RWX {
protected static r: number;
protected static w: number;
protected static x: number;
private stat;
constructor(stat: StatsMode);
get read(): boolean;
set read(v: boolean);
get write(): boolean;
set write(v: boolean);
get execute(): boolean;
set execute(v: boolean);
}
class Owner extends RWX {
protected static r: number;
protected static w: number;
protected static x: number;
}
class Group extends RWX {
protected static r: number;
protected static w: number;
protected static x: number;
}
class Others extends RWX {
protected static r: number;
protected static w: number;
protected static x: number;
}
class Mode {
owner: Owner;
group: Group;
others: Others;
private stat;
constructor(stat?: number | StatsMode);
private checkModeProperty;
isDirectory(v?: boolean): boolean;
isFile(v?: boolean): boolean;
isBlockDevice(v?: boolean): boolean;
isCharacterDevice(v?: boolean): boolean;
isSymbolicLink(v?: boolean): boolean;
isFIFO(v?: boolean): boolean;
isSocket(v?: boolean): boolean;
/**
* Returns an octal representation of the `mode`, eg. "0754".
*
* http://en.wikipedia.org/wiki/File_system_permissions#Numeric_notation
*
* @return {String}
* @api public
*/
toOctal(): string;
/**
* Returns a String representation of the `mode`.
* The output resembles something similar to what `ls -l` would output.
*
* http://en.wikipedia.org/wiki/Unix_file_types
*
* @return {String}
* @api public
*/
toString(): string;
valueOf(): number;
get setuid(): boolean;
set setuid(v: boolean);
get setgid(): boolean;
set setgid(v: boolean);
get sticky(): boolean;
set sticky(v: boolean);
}
}
export = createMode;